我有一个 Blazor Web 应用程序,它已经在现场工作了几个月。我想将数据库查询扩展到类似的“检测”组。
它是从 .NET 5 开始编写的,今天更新到 .NET 6,试图让它正常工作。
我想知道如何获取按TimeStamp(日期时间属性)排序的结果。我有一个使用内存数据库的工作示例,但生产将在 SQL Server 中进行。我不太擅长 SQL,但我在 Management Studio 中使用它一段时间了,但没有运气。
正确地注释了OrderByDescending()组的内容,但结果的顺序不正确。EF 翻译过程似乎完全删除了该行,它对生成的查询或结果集没有任何影响。
var results = context.Detections
//Line below makes no change ignored by SQL Server. Works when using in memory DB.
//.OrderByDescending(det => det.TimeStamp)
.GroupBy(det => new
{
Year = det.TimeStamp.Year,
Month = det.TimeStamp.Month,
Day = det.TimeStamp.Day,
Hour = det.TimeStamp.Hour,
})
.Select(grp => new
{
Count = grp.Count(),
Detection = grp.OrderByDescending(det => det.TimeStamp).First(),
})
//The following line will …Run Code Online (Sandbox Code Playgroud)