gpt4 book ai didi

sql - LINQ-to-SQL 是否支持可组合查询?

转载 作者:行者123 更新时间:2023-12-04 16:26:47 24 4
gpt4 key购买 nike

作为一个不熟悉 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是一个 ADO 实体,它定义了 agefirstName字段,从数据库的角度来看,这会做什么?具体来说, people运行查询以生成内存结构,然后由 otherPeople 查询。询问?或者会 build otherPeople只需从 people 中提取有关查询的数据然后生成一个新的数据库对等查询?那么,如果我对这两个查询进行迭代,将执行多少条 SQL 语句?

最佳答案

它们是可组合的。这是可能的,因为 LINQ 查询实际上是表达式(代码即数据),LINQ-to-SQL 等 LINQ 提供程序可以评估并生成相应的 SQL。

因为 LINQ 查询是惰性求值的(例如,在您遍历元素之前不会执行),所以您显示的代码实际上不会触及数据库。直到您迭代 otherPeople 或 people 才会生成并执行 SQL。

关于sql - LINQ-to-SQL 是否支持可组合查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/89193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com