我有一个包含内容对象的列表(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比较它们。在这个例子中,我将返回说明和HtmlMarkup对于ContentID 1是不同的。如果ContentID不匹配(意味着它已被删除或不在第二个数据库中),我也想抓住它。我该怎么做?
答案 0 :(得分: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
};