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側でしぼってる。よしよし。