ObjectSet のメソッドを使用して、テーブル内でさまざまなクエリを実行しています。つまり、テーブルからいくつかのレコードを選択しています。
var results = Repository.Find(c => c.Enabled == 1).ToList();
私のリポジトリの Find メソッドは次のとおりです。
public IEnumerable<T> Find(Func<T, bool> predicate)
{
try
{
return _objectSet.Where<T>(predicate);
}
catch
{
throw;
}
}
ここで、対象のテーブルに約 1,000,000 のレコードがある場合、実行しているFind呼び出しが多くても数レコードしか返さなくても、プロセスのメモリ使用量が大幅に増加することがわかります。
すべてのレコードがクライアント側で取得され、フィルタリングされたようです。これは明らかに、私が LINQ に望んでいることではありません。
私がやっていることで何か明らかに間違っていると思いますか?
前もって感謝します。