使用:
.Net 4.0
EntityFramework 4.3
如果我以这种方式查询DBSet:
public DbSet<Reciept> Reciepts { get; set; }
Reciepts.Where(rec =>rec.Number == reciept.Number &&
rec.Project.ID == reciept.Project.ID);
是否会返回整个表格,然后按我的查询过滤?
或者以某种方式将其转换为SQL(Linq2SQL?),并仅返回那些行?
答案 0 :(得分: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
另一个可用于检查实际发送到数据库的工具是SQL Server Profiler(http://msdn.microsoft.com/en-us/library/ms187929.aspx)。我在使用EF进行开发时一直使用它。