LINQ到实体的结果没有正确排序
本文关键字:排序 结果 实体 LINQ | 更新日期: 2023-09-27 18:01:22
我有一个LINQ到实体查询,应该根据升序的DateTime
字段输出数据。但是,它没有按照任何特定的顺序输出数据,我不知道原因。
我已经对DB做了一个基本的SELECT
语句,并以适当的顺序获得数据。看来,LINQ查询的OrderBy
命令只是被忽略了。我怎么能看到SQL正在生成?
我已经尝试过LINQPad,但它一直给出一个关于上下文未更新的BS错误,即使UPDATE-DATABASE
命令说没有未决的更改,或者如果我看不到正在生成什么,那么调试这个的最佳方法是什么?
db.Releases
.Where(r => r.SectionID == model.ID)
.Include("Platform")
.Include("Region")
.Include("Publisher")
.OrderBy(r => r.DateReleased.HasValue)
.Select(r => new ReleaseInfoVM()
{
ReleaseName = r.Name,
Platform = r.Platform.Name,
Publisher =r.Publisher.Name,
Region = r.Region.Name,
ISBN = r.ISBN,
DateReleased = r.DateReleased,
EstimatedReleaseDate = r.EstimatedReleaseDate
}).ToList();
.HasValue
返回布尔值。如果属性不为空,则为True。这行不通。相反,尝试:
.OrderBy(r => r.DateReleased)
正如@user2864740在评论中指出的那样,要确保空值到达列表的末尾,请尝试:
.OrderBy(r => r.DateRelease ?? DateTime.Max)