DLINQ その1

Asp.Netエンタープライズソリューションパターン その1 MVC - テンポラリでDLINQを使ってみたんだけど、いろいろと気になることはある。

return from trac in recordings.trac
               where trac.recordingId == recordingId
                  select trac;

として行を選んでいるんだけど、これって
1.全行とってきてからWhereしているんだろうか?
2.データベースから取得するときにすでに絞っているのか?

DLINQではクエリをT-SQLに変換している、とどこかで読んだし、1ではまともに使えないので2なんだろうけど、確認してみる。
SQLServerプロファイラでトレースしながら動かす。
すると。。。

exec sp_executesql N'SELECT [t0].[recordingId], [t0].[id], [t0].[title], [t0].[timestamp]
FROM [dbo].[trac] AS [t0]
WHERE [t0].[recordingId] = @p0',N'@p0 int',@p0=0

ちゃんとDB側でしぼってる。よしよし。