-1

我有一个带有内容对象 ( List<Content>) 的列表。在 Content 对象中,我有 4 个字段。

ContentID
ModifiedDate
Description
HtmlMarkup

我有两个List<Content>需要通过 ContentID(两个不同的数据库)进行比较,看看是否有任何字段具有不同的值,然后我需要获取哪些字段不同。

所以可以说我有对象A

ContentID    - 1
ModifiedDate - 1/1/2013
Description  - "This is my first content class"
HtmlMarkup   - "<b>First Content</b>

和对象 B

ContentID    - 1  -- these are from two different databases, so contentID will match
ModifiedDate - 1/1/2013
Description  - "This is a description"
HtmlMarkup   - "<b>Test</b>

我应该通过 ContentID 比较它们。在此示例中,我将返回 ContentID 1 的 Description 和 HtmlMarkup 不同。如果 ContentID 不匹配(意味着它已被删除或不在第二个数据库中),我也想抓住它。我怎么做?

4

1 回答 1

2

不是最优雅的解决方案,但这样的东西应该可以工作。可以只修改选择以返回您需要的任何数据。

var result = from contentA in contentObjectA
             join contentB in contentObjectB on contentA.Id equals contentB.Id into contentBB
             from contentB in contentBB.DefaultIfEmpty(null)
             select new {
                ContentAId = contentA.Id
                //Check if Id exists
                ExistsInB = contentB == null ? false : true,
                ModifiedDateDiff = contentB.ModifiedDate == null ? true : contentA.ModifiedDate == contentB.ModifiedDate,
                DescriptionDiff = contentB.Description == null ? true : contentA.Description == contentB.Description,
                HtmlMarkupDiff = contentB.HtmlMarkup == null ? true : contentA.HtmlMarkup == contentB.HtmlMarkup
             };
于 2013-05-07T20:43:21.910 回答