私は実際に、非常に大きな linq to entity クエリ (約 250 行) を使用するプロジェクトに取り組んでおり、多くの異なるエンティティを操作しています。
このクエリはいくつかのパラメーター (最大 3 または 4) に依存するため、クエリの式ツリーを "保存" し、このようにいくつかのパラメーターだけでこれを変更することを考えています。
IQueryable<Foo> myQuery =
GetBaseQuery()
.Where(a => a.Param1 == "foo")
.Where(a => a.Param2 == "bar");
コンパイルされたクエリを使用する以外に、それを行う方法はありますか?
この問題にはいくつかの条件があります
- 私は DbContext を使用していますが、ObjectContext に変更することは困難です。これは、コンパイルされたクエリを使用するための前提条件のようです。
- 私は Visual Studio 2010 を使用しているため、.NET 4 とエンティティ フレームワーク 4.3 に制限されています (残念ながら .NET 4.5、EF5、および自動コンパイルされたクエリはありません)。
それで、方法はありますか
- 「ベース」として使用され、生成にあまり時間がかからない式ツリーを保存しますか?
- または、Visual Studio 2010 で .NET 4.5 を使用していますか?
- または、DbContext でコンパイル済みクエリを使用する
本当にありがとうございます!