gpt4 book ai didi

c# - Linq 加入 - 重复

转载 作者:行者123 更新时间:2023-11-30 14:20:10 27 4
gpt4 key购买 nike

我有两个表。

1.用户表(用户名,姓名)

2.图片表(ID, Username, IsPrimary)

每个用户可以拥有零到多张图片。

我正在尝试编写一个查询,该查询将返回所有用户(有或没有图片)和单个图片 ID(IsPrimary = true 的图片) .

我写了这个 Linq 查询:

var v = from u in Users
join p in Photos on u.Username equals p.Username
select new
{
u.Username,
p.ID
};

这有效但会返回重复的用户行。 (如果用户有多张照片)。

我想为每个用户获取一行。这可能吗?

最佳答案

这应该完全符合您的要求。

from u in Users
let p = Photos.Where(p => p.Username == u.Username).FirstOrDefault()
where p <> null
select new
{
u.Username,
p.ID
};

但是,值得注意的是,您最好编写手动优化的 SQL 并使用 db.ExecuteQuery<User> 检索对象或类似的。

关于c# - Linq 加入 - 重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1608867/

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