![]() |
1
4
对于LINQ,在实际枚举结果之前,不会计算生成的查询。构造查询时所要做的就是构建表达式树、委托序列或使用其他语言构造(如yield语句)将执行延迟到稍后。在需要查询结果之前,表达式树(委托/收益)不会导致实际查询。这允许您构建一个查询,直到最后一个可能的时刻才对其进行计算,从而使结果集尽可能小。例如,在Linq to SQL中,我们有:
关于这一点,我们可以在 http://language-integrated-query.com/Linq_Deffered_Query.aspx 和 http://msdn.microsoft.com/en-us/library/bb308959.aspx . |
![]() |
2
3
延迟的计算意味着在使用该项之前,Linq to SQL不会转到SQL Server数据库。 您有一个数据库表。称它为用户。 如果你这样做。
您尚未访问数据库。 当你做类似的事情时。
当foreach获取用户列表的枚举器时,也就是它进入数据库执行时的枚举器。 因此,它将评估推迟到客户机代码使用它为止。 |
![]() |
Imad · Linq扩展方法没有使用Object类的Equals 1 年前 |
![]() |
user8512043 · 根据每个元素中的数字对列表进行排序 2 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |