作为一个非 C# 精明的程序员,我很好奇 LINQ 查询的评估语义,如下所示:
var people = from p in Person
where p.age < 18
select p
var otherPeople = from p in people
where p.firstName equals "Daniel"
select p
假设这Person
是一个定义age
andfirstName
字段的 ADO 实体,从数据库的角度来看,这会做什么?具体来说,是否people
会运行查询以生成内存中的结构,然后由otherPeople
查询查询?或者otherPeople
只是从查询中提取数据people
然后生成一个新的数据库对等查询?那么,如果我遍历这两个查询,会执行多少条 SQL 语句?