我有下面的查询,我希望它在“RegistrationNumber”上是不同的,并按“DriverToLoad”排序。
Distinct/grouping工作正常。但是,我的查询按“RegistrationNumber”排序,显然忽略了“OrderBy”:
Drive = await _db.Drive
.Where(m => m.StatusId == 5 || m.StatusId == 1010 || m.StatusId == 1012)
.Include(s => s.DriveStatus)
.Include(d => d.Location)
.Include(f => f.Item)
.GroupBy(m => m.RegistrationNumber)
.Select(g => g.OrderBy(m => m.DriverToLoad).First())
.ToListAsync(),
有没有LINQMaven可以指出问题所在,以及如何解决?我正在使用.NET7。提前感谢。
2条答案
按热度按时间2g32fytz1#
我建议你这样做:
或者像这样:
aydmsdu92#
我已经解决了它,但可能不是最好的方式(...我会说更像是一个"黑客")。
这样我就得到了我想要的排序,并且可以将其返回给视图。
我还没有看到LINQ的强大功能,所以也许我应该把目标放在直接在我的控制器中使用ADO和SQL上,并以某种方式将其转换为列表以返回到我的视图中;-)
谢谢你们所有的好建议,我真的很感激。