我有以下代码:
from _categories in context.SCT_Categories
join _categoryOrders in context.SCT_CategoryOrders
on _categories.ID equals _categoryOrders.CategoryID into joinedData
from _categoryOrders in joinedData.DefaultIfEmpty()
orderby _categoryOrders.OrderIndex descending
select _categories
哪个对类别和categoryOrders左联接
对于每个catgoryOrder,都有一个类别。
效果很好,除了当我想按OrderIndex排序(可以为999的空值)时,它会将所有空值(即空返回的关系,其中类别没有categoryOrder的排序)放在查询的顶部。
如何更改此值以将空值放在列表的末尾?查询后最好不进行迭代,以将空值更改为999。
谢谢,
京东
最佳答案
我没有尝试过(IQueryProvider可能不喜欢它)
let orderIndex = _categoryOrders.OrderIndex ?? int.MaxValue
就在您的orderby之前,而是在orderIndex上订购。
关于c# - LINQ orderby FK使用左联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3903159/