gpt4 book ai didi

linq - 这也被视为子查询吗?

转载 作者:行者123 更新时间:2023-12-04 06:13:25 26 4
gpt4 key购买 nike

我知道以下查询是如何工作的,我只是对术语感到困惑。

每个查询都以强制 FROM 子句开头,并且必须以 SELECT 或 GROUP 子句结尾。在这两个子句之间,我们可以放置任意数量的可选 FROM...LET...WHERE 子句。子查询只是查询中的查询,这意味着它也具有相同的结构:

var result = from p1 in artists
from p3 in (from p2 in p1.albums
select new { ID = p2.id, Title = p2.title })
select p3;

但与上例中的子查询不同的是,以下子查询 ( from p2 in artist.Albums ) 不以其自己的 SELECT/GROUP 子句结尾,因此其结构在某种意义上有所不同,它以 FROM 子句开头,但不以 FROM 子句开头以 SELECT/GROUP 子句结尾。所以我的问题是术语子查询是否也适用于 from p2 in artist.Albums ,即使它的结构有点不同?
 var result1 = from p1 in artists
from p2 in p1.Albums
select new { Artist_id = p1.id, Album_id = p2.id };

谢谢你

最佳答案

在您的第二个查询中,result1 ,没有子查询,只有一个带有两个from的查询条款。

在幕后,使用两个 from这样子句会被翻译成SelectMany手术:

artists.SelectMany( p1      => p1.albums
,(p1,p2) => new { Artist_id = p1.id, Album_id = p2.id })

关于linq - 这也被视为子查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7519226/

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