Linqでよく使用する1種類のリクエストがあります。
アイテムのリストにあるID(またはその他のフィールド)を持つデータのセットが必要です。データをロードするために多くの(使用された)インクルードを持っているので、これは重い要求です。
だから例:
私はこの種の構造を持つ人とのテーブルを持っています:
Id; Name; Age; ...
このテーブルは、外部キーにリンクされたいくつかのテーブルであり、これらのデータをロードする必要があります:Car、Company、Address、...
そして今、私は特別な年齢の人々のすべてのデータを取得したいと思います:
List<int> ages = new List<int>(){7,17,27,37,47,57,67,77,87};
using (MyDatabaseEntities context = new MyDatabaseEntities ())
{
return context.Persons.Include("Car").Include("Company").Include("Address")
.Where(p=>ages.Contains(p.Age)).ToList();
}
問題は、Linqが私の「年齢」リストが変更されないことを知らないという印象を持っていることです。次に、すべてのデータ(Car、Company、...)を含む個人の完全なリストをダウンロードして、チェックします。正しい年齢であれば、すべての結果。
それで。
- 私は正しいですか?
- これを回避する方法は?