LINQを使用してDynamics CRM 2011からデータを取得しようとしています。目標は、特定の日付以降に変更があった連絡先レコードをすべて、または同じ日付以降に変更された子エンティティ(PERCファイル)を持つことです。クエリは、次のようになります。Where-clauseのLINQ to CRM-OR
「コンタクト」の実体は、名前=「cga_statuschangedate」で属性が含まれていません:
// 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();
これは、次のエラーメッセージを生成します。
私は2つの異なるエンティティでORを実行する方法を理解できません。句>は、エンティティの一つ以上に対して追加することができ、結果セットをフィルタリングするために
句
:MSDNを使用すると、各エンティティのWHERE句を必要と述べています。各where句には、個々のエンティティタイプに対する条件しか含めることができません。 >複数のエンティティを含む複合条件は無効です。代わりに、各エンティティ>は別々のwhere節でフィルタリングされるべきです。
http://msdn.microsoft.com/en-us/library/ff681565.aspx
何が必要達成するための別の方法はありますか?