0

エンティティ フレームワークを使用する場合、用語に間違いがなければ、linq をエンティティおよび拡張メソッドに使用できます。

このクエリにエンティティへの linq という名前を付けます。

var myResult = (from c in myCOntext.Customers
                where c.ID >= 35
                select c).List();

そして、拡張メソッドに次のように名前を付けます。

List<Customers> lstResult = myContext.Customers.Where(c=>c.ID >= 35).ToList();

どちらの場合も同じ結果が得られますが、どちらの場合も EF はクエリを T-SQL に変換する必要があるため、一方の方法が他方よりも効率的かどうか疑問に思います。

ありがとう。

4

1 に答える 1

2

まったく同じです。宣言型クエリ構文(最初のコード スニペット) は、コンパイル時に、標準のクエリ演算子/拡張メソッドを呼び出すメソッド (2 番目のコード スニペット) に変換されます(簡単なリファレンスはこちら)。

最終的に、コンパイルされたコードは同じであり、このコード (LINQ to Entities) は、実行時に SQL への変換を実行します。スニペットを 1 つまたは 2 つ選択するのは、個人的な好みと好みの問題です。ただし、サポートされているすべてのメソッドがクエリ構文に対応するわけではないため、拡張メソッド構文しか使用できない場合があります。

于 2013-07-31T16:25:35.960 に答える