次の2つの例は異なっていますか?その場合、より効率的ですか?Linq-to-Entities/Linq-to-SQLでは、1つのデータポーリング方法が効率的ですか?
var user = (from u in db.Users where u.Id == userId select u).Single();
と
var user = db.Users.Single(p => p.Id == userId);
次の2つの例は異なっていますか?その場合、より効率的ですか?Linq-to-Entities/Linq-to-SQLでは、1つのデータポーリング方法が効率的ですか?
var user = (from u in db.Users where u.Id == userId select u).Single();
と
var user = db.Users.Single(p => p.Id == userId);
彼らは、機能的に同等です。さまざまなLINQプロバイダーでの実装方法に若干の違いがあるかもしれませんが、ほぼ同じ性能が期待されます。例えばSQLプロバイダへのLINQは、両方のクエリのためにまったく同じSQLを生成します:
SELECT [t0].[Id], [t0].[Name]
FROM [dbo].[User] AS [t0]
WHERE [t0].[Id] = @p0
は、私は同じことがEntity Frameworkのに適用されることを期待しています。
1つを選択する必要がある場合は、2番目のバージョンを選択します。これは、明快さを失うことなく簡潔になるためです。実際、私はそれがより明確であると言います - ビジネスノイズがより顕著になるようにキーワード雑音が少ないです。
これらはどちらも同じです(SQLと効率的です)。
これらは同じです。コンパイラは、両方のLINQ構文に対して同じ結果を生成する必要があります。
データコンテキストからデバッグ情報をパイプし、生成されるクエリを確認します –
通常、Sqlプロファイラはこのような質問に役立ちます。 )) –