フィルタのリストを使用してlinqクエリをフィルタリングする必要があり、そのためにcontainsメソッドを使用する予定です。だから、このようなものになるでしょう。Linqの性能が含まれています
List<string> filter = new List<string>();
filter.Add("foo");
filter.Add("bar");
//Additional filters go here, max of about 10 filters
var test = dbcontext.books.Where(x => filter.Contains(x.name)).ToList();
このクエリの背後にあるテーブルには、多くのレコード(500,000)、PK IDフィールド、およびクエリ対象のフィールドのインデックスがあります。
私の質問は、このルートを下る前に、このクエリのパフォーマンスが受け入れられると思っていますか、そういった大きなデータセットで別のアプローチを使用する必要がありますか?
「許容可能なパフォーマンス」を定義します。 – Oded
Linq2ObjectsまたはLinq2SQL?後者の場合、SQLサーバーはそれを最適化する必要があります。前者はそれに依存するが、一般的にはそれよりも遅い。 – leppie
@leppie EFが最も簡単なクエリでさえもできることを常に驚かせています。 SQL GeneratorにRube Goldbergレイヤーがあることを誓っています。 –