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>
れるので、2 番目は SQL.Where()
に変換するのではなく、メモリ内のエンティティをフィルター処理IQueryable<T>
しますが、それは正しいですか?