Asp.net core mvc OrderBy()从查询中删除项

Asp.net core mvc OrderBy()从查询中删除项,asp.net-core-mvc,entity-framework-core,Asp.net Core Mvc,Entity Framework Core,我刚刚发现,在EF7 RC1 OrderBy()中,如果导航属性为null,则语句会从查询中删除项 var units = db.Units.Include(i => i.VehicleModel).OrderBy(u => u.VehicleModel.Displacement); 我有23个db.Units项目,其中三个项目的VehicleModel导航属性设置为null。结果单位将只有20个项目 这是一个bug还是出于设计?如何更改项目代码以使其不消失?这有效吗 .Order

我刚刚发现,在EF7 RC1 OrderBy()中,如果导航属性为null,则语句会从查询中删除项

var units = db.Units.Include(i => i.VehicleModel).OrderBy(u => u.VehicleModel.Displacement);
我有23个db.Units项目,其中三个项目的VehicleModel导航属性设置为null。结果单位将只有20个项目

这是一个bug还是出于设计?如何更改项目代码以使其不消失?

这有效吗

.OrderBy(u => u.VehicleModel == null ? 0 : u.VehicleModel.Displacement)

存在编译错误“运算符| |不能应用于它现在编译的'bool'和'init'类型的操作数,但结果是相同的-列表中缺少项。有效的方法是在您的建议之前使用ToList()。即:.ToList().OrderBy(u=>u.VehicleModel==null?0:u.VehicleModel.Displacement)这意味着查询不是由数据库执行的,而是在内存中执行的…(当然,查询的排序部分)