【发布时间】:2010-09-10 11:48:12
【问题描述】:
作为一个非 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 和firstName 字段的ADO 实体,那么从数据库的角度来看,这会做什么?具体来说,是否会运行people 查询以生成内存结构,然后由otherPeople 查询查询?或者otherPeople 的构造是否只是从people 中提取有关查询的数据,然后生成一个新的数据库对等查询?那么,如果我对这两个查询进行迭代,会执行多少条 SQL 语句?
【问题讨论】:
标签: sql linq linq-to-sql code-reuse