つまり、SportsWagonというエンティティタイプと、SportsWagonが実装するインターフェイスICarがあります。IEnumerable<ICar> GetCars(Func<ICar, bool> filter)
また、SportsWagonsから一致する車をフェッチし、それらを列挙可能な車として返すタイプの関数を作成しました。この関数は非常にシンプルで、呼び出すだけですMyContext.SportsWagons.Where(filter).Where(someAdditionalLogicInSomeCases);
私の問題は、SQLプロファイラーを使用すると、これによって生成されたクエリにWHERE句が完全に欠落しているように見えることです。さらに悪いことに、同じ車を複数回フェッチするループがある場合、それらは毎回新しいクエリを生成するように見えます。私は最初にEF4.3.1データベースを使用しています。それで、EFはインターフェースベースのFuncを変換してデータベースで正しいクエリを作成することができないのでしょうか、それとも私はまったくばかげた何かをしているのでしょうか?