【发布时间】:2013-10-23 00:49:58
【问题描述】:
在 LINQ-to-Entities 中,您可以通过以下方式查询实体:
var students = SchoolContext.Students.Where(s => s.Name == "Foo" && s.Id == 1);
我知道在幕后它会被翻译成 SQL,类似于:
SELECT *
FROM Students
WHERE Name = 'Foo' AND Id = 1
但是,如果我写,会有区别(就性能而言):
var students =
SchoolContext.Students
.Where(s => s.Name == "Foo")
.Where(s => s.Id == 1);
它会被翻译成相同的 SQL 查询吗?据我了解.Where() 将返回IEnumerable<T>,因此第二个.Where() 将过滤内存中的实体,而不是将IQueryable<T> 转换为SQL,对吗?
【问题讨论】:
标签: c# sql linq entity-framework