在 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,对吗?