为“使用实体框架的子查询”选择“顶部”
本文关键字:查询 顶部 选择 框架 实体 | 更新日期: 2023-09-27 18:35:47
我在 C# 实体框架中设置了主从模型关系。 一个主记录可能有多个详细记录。 我希望恢复所有主记录,但只恢复每个主记录的第一个关联详细信息记录。
例如主:Id=5
详细信息:id=1;EventMasterId=5;
细节:id=2;EventMasterId=5;
细节:id=3;EventMasterId=5;
当"主 ID 5"返回时,我只想要第一个关联的记录"详细信息 ID 1"。我不想要其他细节。
我可以在原始SQL中执行此操作,但无法弄清楚如何将其转换为LINQ:
SELECT * FROM EventMasters
JOIN EventDetails
ON EventDetails.Id =
(SELECT TOP 1 Id
FROM EventDetails
WHERE EventMasterId=EventMasters.Id
ORDER BY StartDate)
这是"事件详细信息"中的"选择前 1 名"特别让我绊倒。
有人知道如何将此SQL语句转换为LINQ吗?
谢谢
Masters
.Select(m => new{
Master = m,
Detail = m.Details.OrderBy(d => d.StartDate).FirstOrDefault())
})