我有以下代码:
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
对类别和类别订单进行左连接
每个 catgoryOrder 都有一个类别。
这很有效,除了当我想按 OrderIndex(可以为 null 到 999)排序时,它将所有空(即类别没有categoryOrder 的返回 null 的关系)放置在查询的顶部。
如何更改此设置以将空值放在列表末尾?最好在查询后没有迭代将空值更改为 999。
谢谢
京东
最佳答案
我还没有尝试过这个(IQueryProvider 可能不喜欢它)
let orderIndex = _categoryOrders.OrderIndex ?? int.MaxValue
就在 orderby 之前,并在 orderIndex 上订购。
关于c# - 使用左连接的 LINQ orderby FK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3903159/