0

次のクエリがあります。

baseQuery = Buildings.Where(
     i => i.Apartment != null 
     && i.Apartment.Manager != null 
     && i.Apartment.Manager.Name == Username);

ここで 3 つの個別のクエリを実行しているため、エラーが発生していると思います。そのため、この操作は非常に遅くなります。このチェックを最適化する方法はありますか?

編集: resharper から「IEnumerable の可能な複数列挙」を取得します。

4

1 に答える 1

2

ContextProvider.Context.Inspectionsそれがまたはであると仮定するとDbSetIQueryableこれはIEnumerableの複数の列挙にはなりません。式はSQLクエリに変換され、サーバー上で実行されます。これを確認するには、行の後にブレークポイントを置き、カーソルを合わせbaseQueryて生成されたSQLを確認します。

resharperからの誤検知のように見えます。

于 2013-02-16T17:12:54.347 に答える