-1

Content オブジェクト ( ) を持つリストがありますList<Content>。Content オブジェクト内には、4 つのフィールドがあります。

ContentID
ModifiedDate
Description
HtmlMarkup

ContentID (2 つの異なるデータベース) で比較する必要がある 2 つList<Content>のフィールドがあり、いずれかのフィールドの値が異なるかどうかを確認してから、どのフィールドが異なるかを取得する必要があります。

オブジェクト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 に一致しない場合 (削除されたか、2 番目のデータベースにないことを意味します)、それも取得したいと思います。それ、どうやったら出来るの?

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 に答える