我有两个表 Clients 和 ClientEvaluations,这些表通过外键连接。每个 ClientEvaluation 对单个客户端实体都有 FK。
现在我需要查询所有客户的最后一次评估,每个客户不超过一次评估。请注意,每个评估都有一个日期。
这里的代码在 SQL 中实现了这一点。
SELECT C.Id, MAX(E.EvaluationDate) FROM [dbo].[Clients] as C
JOIN [dbo].[ClientEvaluations] AS E ON E.ClientId = C.Id
GROUP BY C.Id
我也试过这个,但我想要实现的问题是我需要从这个查询中取回客户端实体属性。
var lastEvaluations = _db.ClientEvaluations.GroupBy(x => x.ClientId, (x, y) => new { ClientId = x, EvaluationDate = y.Max(z => z.EvaluationDate), }).ToList();
但是这里的查询当然只返回 ClientId 和日期,我怎样才能包含整个客户端实体?