gpt4 book ai didi

c# - LINQ 使用 Take(1) 连接(左外)

转载 作者:行者123 更新时间:2023-11-30 21:19:28 26 4
gpt4 key购买 nike

如果没有任何地址(内部连接),我有以下 LINQ 返回零。我如何将其设为 Outer Join 然后仅 Take(1)

var results = query.Join(
DB.tblAddresses.Where(t => t.AddressTypeID == 'm' || t.AddressTypeID == 'b').OrderByDescending(x => x.AddressTypeID),
p => p.PersonID,
a => a.PersonID,
(p, a) =>
new
{
p.PersonID,
p.LastName,
p.FirstName,
p.MiddleName,
p.SSN,
p.BirthDate,
p.DeathDate,
AddressLine1 = a.AddressLine1 ?? string.Empty
});

return results.CopyLinqToDataTable();

最佳答案

使用GroupJoin :

var results = query.GroupJoin(
addresses,
p => p.PersonID,
a => a.PersonID,
(p, a) =>
new
{
p.PersonID,
p.LastName,
p.FirstName,
p.MiddleName,
p.SSN,
p.BirthDate,
p.DeathDate,
AddressLine1 = a.Any()
? (a.First().AddressLine1 ?? string.Empty)
: null
});

关于c# - LINQ 使用 Take(1) 连接(左外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773127/

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