我有以下代码:

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/

10-12 05:32