gpt4 book ai didi

c# - LINQ 选择具有不同 ForeignKeyId 列的最新记录

转载 作者:太空狗 更新时间:2023-10-30 01:29:57 25 4
gpt4 key购买 nike

我有以下 SQL 查询:

SELECT 
table1.Id AS EinAusgangId,
table1.Ausgabedatum,
table1.Rueckgabedatum,
table1.WerkzeugId,
cpmWerkzeug.Name
FROM cpmEinAusgang AS table1
INNER JOIN cpmWerkzeug ON table1.WerkzeugId = cpmWerkzeug.Id
WHERE table1.Id = (SELECT MAX(Id) AS Expr1
FROM dbo.cpmEinAusgang
WHERE table1.WerkzeugId = WerkzeugId)

我的目标是将整个查询转换为 LINQ 语句,以便在 .Net 应用程序中进一步使用。我已经将联接表转换为 LINQ,但是否也可以在 where 子句中使用 select

这是我到目前为止得到的结果,它给我的结果与上面的 SQL 语句几乎相同,但是当表 cpmEinAusgang 包含一个 cpmWerkzeug 的多个记录时会出现重大错误

using (var dbContext = new cpmEntities())
{
var werkzeuge = from w in dbContext.cpmWerkzeug
join e in dbContext.cpmEinAusgang
on w.Id equals e.WerkzeugId
where e.Rueckgabedatum == null
orderby w.Name
select w;

return werkzeuge.ToList();
}

有没有人知道如何在 linq 中实现上述 sql?谢谢你的帮助。 :)

编辑:已解决(见下文)

最佳答案

var werkzeugeImUmlauf = from w in dbContext.cpmWerkzeug
join e in dbContext.cpmEinAusgang
on w.Id equals e.WerkzeugId
where e.Id == dbContext.cpmEinAusgang.Where(x => x.WerkzeugId == e.WerkzeugId).Max(x => x.Id) select w;

这是最终的解决方案。正如 Mittal 在他的回答中提到的,可以在 LINQ 中编写子查询。

关于c# - LINQ 选择具有不同 ForeignKeyId 列的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48823103/

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