gpt4 book ai didi

c# - 如何在 Fluent LINQ 中加入 or 子句

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:26 25 4
gpt4 key购买 nike

我正在尝试连接两个表。

TSQL 将是:

SELECT * 
FROM User u INNER JOIN Hierarchy h ON u.OrganisationId = h.OrganisationId
OR u.OrganisationId = h.OwnerOrganisationId

我已经搜索过,没有人能用流利的方式回答这个问题。我能想到的最接近的是:

var join1 = context.User.Join(context.Hierarchy, u => u.OrganisationId, h => h.OrganisationId, uh => new {u, h});
var join2 = context.User.Join(context.Hierarchy, u => u.OrganisationId, h => h.OwnerOrganisationId, uh => new {u, h});
var desiredResult = join1.Union(join2);

虽然这看起来效率很低。

最佳答案

语法流畅

var orJoin = context.User.SelectMany(
u => context.Hierarchy.Where(h => u.OrganisationId == h.OrganisationId || u.OrganisationId == h.OwnerOrganisationId),
(u, h) => new { u, h }
);

查询语法

var orJoin = from u in context.User
from h in context.Hierarchy
where u.OrganisationId == h.OrganisationId || u.OrganisationId == h.OwnerOrganisationId
select new { u, h };

关于c# - 如何在 Fluent LINQ 中加入 or 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22868709/

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