gpt4 book ai didi

c# - 如何使用 DbLinq 和 SQLite 进行左外连接?

转载 作者:行者123 更新时间:2023-11-30 12:15:58 25 4
gpt4 key购买 nike

我试过了

db.Table1.GroupJoin(db.Table2,
t1 => t1.Id,
t2 => t2.t1Id,
(t1,g) => new { t1, g })
.Where(item => !item.g.Any())
.Select(item => item.t1);

但是它返回了 0 个结果。我正在尝试编写生成以下 SQL 代码(或类似代码)的东西

SELECT t1.*
FROM Table1 as t1
LEFT OUTER JOIN Table2 as t2
ON t1.Id = t2.t1Id
WHERE IsNull(t2.Id);

最佳答案

看起来您想要的结果是识别 Table1 中在与 Table2 的左外连接期间没有结果的项目。

在流利的表示法中,该方法与此类似:

var query = db.Table1.GroupJoin(db.Table2,
t1 => t1.Id,
t2 => t2.t1Id,
(t1, joined) => new { t1, joined }
)
.SelectMany(r => r.joined.DefaultIfEmpty(), (r, j) => new
{
r.t1,
j
})
.Where(r => r.j == null)
.Select(r => r.t1);

在查询语法中:

var query = from t1 in db.Table1
join t2 in db.Table2 on t1.Id equals t2.t1Id into joined
from j in joined.DefaultIfEmpty()
where j == null
select t1;

关于c# - 如何使用 DbLinq 和 SQLite 进行左外连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206546/

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