2010-11-29 7 views
4

次の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); 
+0

データコンテキストからデバッグ情報をパイプし、生成されるクエリを確認します –

+0

通常、Sqlプロファイラはこのような質問に役立ちます。 )) –

答えて

4

彼らは、機能的に同等です。さまざまなLINQプロバイダーでの実装方法に若干の違いがあるかもしれませんが、ほぼ同じ性能が期待されます。例えばSQLプロバイダへのLINQは、両方のクエリのためにまったく同じSQLを生成します:

SELECT [t0].[Id], [t0].[Name] 
FROM [dbo].[User] AS [t0] 
WHERE [t0].[Id] = @p0 

は、私は同じことがEntity Frameworkのに適用されることを期待しています。

1つを選択する必要がある場合は、2番目のバージョンを選択します。これは、明快さを失うことなく簡潔になるためです。実際、私はそれがより明確であると言います - ビジネスノイズがより顕著になるようにキーワード雑音が少ないです。

2

これらはどちらも同じです(SQLと効率的です)。

1

これらは同じです。コンパイラは、両方のLINQ構文に対して同じ結果を生成する必要があります。

関連する問題