25

この質問は、EntityFrameworkでLinqを使用したクエリの最適化に関するものです。

.Whereチェーン句と、エンティティフレームワークを使用したlinqクエリの&&単一句での使用に違いはありますか?.Where

例:次のコードがあるとします。

var result = context.SomeEntity.Where(exp1).Where(exp2);

また

var result = context.SomeEntity.Where(exp1 && exp2);

同じ結果をもたらすこれらのステートメントを評価する場合、linqとエンティティフレームワークは同じ方法でそれらを評価しますか?つまり、両方とも同じ実行プランを持ち、したがって同等に効率的でしょうか?

4

2 に答える 2

23

はい、どちらも同じ実行プランになります。SQLトレースを追加しましたが、どちらも同じSQLステートメントを作成します

于 2011-02-17T13:32:42.413 に答える
3

&&コードが読みやすくなるので、私はいつもを使用します。複数のWhereを使用することにより、多くの余分なノイズが発生し、ロジックから焦点が外れます。

于 2012-09-26T21:49:22.597 に答える