gpt4 book ai didi

c# - LINQ Join 从第二张表中获取最新记录

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

问题:

它们是两个表 TableEmails 和 TableSentEmailRecords。因此,每当发送电子邮件时,都会在 TableSentEmailRecords 中存储一条记录,例如发送时间等。

我想做一个 LINQ 查询,它让我获得 TableEmails 的列以及 TableSentEmailRecords 的“SentDate”列,它显示电子邮件发送的最新日期。

我试过这个:

List<CustomEmail> emails = new List<CustomEmail>();

var query = from c in db.TableEmails
join o in db.TableSentEmailRecords on c.EmailId equals o.EmailId
select new CustomEmail
{
EmailName = c.EmailName,
EmailId= c.EmailId,
EmailDescription = c.EmailDescription,
LastDateEmailSentOut = o.SentDate
};

emails = query.ToList();

但这不一定会从 TableSentEmailRecords 表中获取该特定电子邮件的最新记录。

有什么想法吗???

最佳答案

您可以只使用嵌套查询而不是连接:

var query = from c in db.TableEmails 
select new CustomEmail
{
EmailName = c.EmailName,
EmailId= c.EmailId,
EmailDescription= c.EmailDescription,
LastDateEmailSentOut = db.TableSentEmailRecordson
.Where(x => x.EmailId = c.EmailId)
.Max(x => x.SentDate)
};

关于c# - LINQ Join 从第二张表中获取最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11603530/

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