LINQを使用してDynamicsCRM2011からいくつかのデータを取得しようとしています。目標は、特定の日付以降に変更された、または同じ日付以降に子エンティティ(PERCファイル)が変更されたすべての連絡先レコードを取得することです。クエリは次のようになります。
// Bring all students who have changes (at Contact entity) after specific date
// momentInTime or the status of any of their perc files has been changed since
// that date
var students = (from c in ContactSet
join pl in cga_portallogonSet on c.Id equals pl.cga_ContactId.Id
join ef in cga_percfileSet on c.Id equals ef.cga_StudentId.Id
where
(pl.cga_PortalLogonRole.Value == 284970000) // student
where
(c.ModifiedOn >= momentInTime || c.CreatedOn > momentInTime)
||
(ef.cga_statuschangedate >= momentInTime)
select c.cga_StudentNumber).Distinct().ToList();
これにより、次のエラーメッセージが生成されます。
'Contact'エンティティにName='cga_statuschangedate'の属性が含まれていません。
2つの異なるエンティティでORを実行する方法がわかりません。MSDNによると、エンティティごとにWHERE句が必要です。
ここで条項
結果セットをフィルタリングするために、1つ以上のエンティティに対して句を追加できます。各where句には、個々のエンティティタイプに対する条件のみを含めることができます。>複数のエンティティを含む複合条件は無効です。代わりに、各エンティティは個別のwhere句でフィルタリングする必要があります。
http://msdn.microsoft.com/en-us/library/ff681565.aspx
必要なことを達成する別の方法はありますか?