0

使用:

  • .Net 4.0

  • エンティティフレームワーク 4.3

この方法で DBSet を照会した場合:

public DbSet<Reciept> Reciepts { get; set; }
Reciepts.Where(rec =>rec.Number == reciept.Number &&
                        rec.Project.ID == reciept.Project.ID);

テーブル全体が返され、クエリによってフィルター処理されますか?

それとも、何らかの方法でこれを SQL (Linq2SQL?) に変換し、それらの行のみを返しますか?

4

1 に答える 1

1

フィルタリングされた値のみを返します。

デバッグ中にクエリ変数にマウス カーソルを合わせると、生成されたクエリをいつでも確認できます。

var query = Reciepts.Where(rec =>rec.Number == reciept.Number && rec.Project.ID == reciept.Project.ID);
// put breakpoint here and stop mouse cursor at a 'query' variable

DB に実際に何が送信されているかを確認するために使用できるもう 1 つの優れたツールは、SQL Server Profiler (http://msdn.microsoft.com/en-us/library/ms187929.aspx) です。EFで開発している間、私はいつもそれを使用しています。

于 2012-10-28T23:06:44.240 に答える