LINQ to Entities结果未正确排序

时间:2015-07-07 02:37:55

标签: c# linq entity-framework

我有一个LINQ to Entities查询,它应该按照升序顺序输出基于DateTime字段的数据。但是,它没有以任何特定的顺序输出数据,我无法弄清楚原因。

我已经为数据库完成了一个基本的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();

1 个答案:

答案 0 :(得分:3)

.HasValue返回一个布尔值。如果属性不为null,则为True。那不会奏效。相反,尝试:

.OrderBy(r => r.DateReleased)

正如@ user2864740在评论中指出的那样,为了确保空值到列表的末尾,请尝试:

.OrderBy(r => r.DateRelease ?? DateTime.Max)