単純なナビゲーションプロパティB
のエンティティA
があります。 A
の任意のインスタンスに対して、B
の関連する数千のインスタンスが予想されます。 、私はそのようなEFはEntityCollectionを構築しますが、IQueryableが必要です。
var statY = A.B.Where(o => o.Property == "Y");
var statZ = A.B.Where(o => o.CreateDate > DateTime.Now.AddDays(-1));
などの集計操作を行うことでのみ興味が、その代わり
foreach(var x in A.B) { ... }
:
は、私のようなものを呼び出す何の場合はありませんEFは数千のBへの参照をインスタンス化し、これらの演算をメモリ内で行います。これは、ナビゲーションプロパティがEntityCollectionを使用するためです。代わりに、可能であればSQLレベルでこれらのクエリを実行したいと思います。
現在のところ、ナビゲーションプロパティは適切な方法ではない可能性があります。私はEFには付いていないので、私は他のアプローチにもオープンです。しかし、私は可能ならばEFのもとでこれを行う正しい方法を知ることに非常に興味があります。
(私はEF4を使用しています)
A.Where(a => a.B.CreateSourceQuery()。Any(o => o.Property == "Y")); か、ここではlinq JOINをお勧めしますか? –