gpt4 book ai didi

c# - Linq - 带点符号的左外连接

转载 作者:可可西里 更新时间:2023-11-01 02:59:32 24 4
gpt4 key购买 nike

我如何使用点符号在 linq 中进行左外连接?

这是查询表达式:

var query = from u in db.Users
join d in db.Defects on u.userID equals d.userID into defectsGroup
from d in defectsGroup.DefaultIfEmpty()
select new { u, d };

这是我尝试过的:

var query2 = db.Users.GroupJoin(db.Defects.DefaultIfEmpty(), 
u => u.userID,
d => d.userID,
(user, defect) => new { user, defect });

但缺陷显示为 IEnumerable<Defect>而不仅仅是 Defect .我也试过:

var query2 = db.Users.GroupJoin(db.Defects, 
u => u.userID,
d => d.userID,
(user, defect) => new { user, defect.DefaultIfEmpty() });

根本无法编译。所有在线示例似乎都使用(更清晰的)查询语法。

最佳答案

我想你想要这个:

var query2 = db.Users.GroupJoin(db.Defects,
u => u.userId,
d => d.userID,
(u, defectsGroup) => new { u, defectsGroup})
.SelectMany(z => z.defectsGroup.DefaultIfEmpty(),
(z, d) => new { z.u, d });

查看我的 Edulinq blog post on query expressions了解更多详情。

关于c# - Linq - 带点符号的左外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5487882/

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