我正在使用SQL Server和Entity Framework Core2。我有以下SQL查询(在SQL Server Management Studio中)正确地为我提供了前一个小时(添加到度量值表)的度量值:
SELECT id, [timestamp]
FROM measurement
WHERE
dateADD(MINUTE, 60, [timestamp]) > getdate()
这很好。但是现在我想使用EF Core 2在LINQ中编写此查询。 当然我可以编写以下代码:
dbContext
.Measurement
.Include(m => m.Section)
.GroupBy(m => m.Section, (section, m) => new Section
{
Name = section.Name,
CustomerId = section.CustomerId,
MostRecentMeasurement = m.Max(z => z.Timestamp)
})
.Where(x => x.MostRecentMeasurement > DateTime.Now.AddHours(-1))
.ToList();
但这有以下缺点:
如何在EF Core中表达查询,以便可以将其完全转换为SQL?