我有以下 SQL 片段,我试图将其转换为 LINQ 查询,作为更复杂查询的一部分,但我不知道如何开始:
SELECT
AT.PrimaryIDChanged AS PID,
MAX(AT.ProcessID) AS EventTypeID,
MIN(AT.AuditDateTime) AS EventDate
FROM
dbo.AuditTrail AS AT
WHERE
AT.AuditTargetTableID = 13
AND AT.ProcessID IN (30, 31)
GROUP BY
AT.PrimaryIDChanged
目标是 EF6。 我还没有代码可以分享
大致:
var processIDs = new[] { 30, 31 };
var results =
context
.AuditTrail
.Where(at => at.AuditTargetTableID == 13)
.Where(at => processIDs.Contains(at.ProcessID))
.GroupBy(at => at.PrimaryIDChanged)
.Select(g => new {
PID = g.Key,
EventTypeID = g.Select(at => at.ProcessID).DefaultIfEmpty().Max(),
EventDate = g.Select(at => at.AuditDateTime).DefaultIfEmpty().Min()
});