c# - 使用左连接的 LINQ orderby FK

标签 c# .net linq-to-sql

我有以下代码:

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/

相关文章:

c# - 创建 RDP 连接时出现转换错误

.net - HttpBrowserCapability.Crawler 属性 .NET

asp.net - 向LINQ中向SQL生成的类添加新方法

c# - 无法创建类型 'Microsoft.AspNetCore.Http.HttpContext' 的实例

c# - MVC4 cshtml页面函数调用

c# - ServiceStack执行存储过程需要很长时间

.net - 如何使 .NET 不使用注册的 TLB 来编码(marshal)对 COM 方法的调用?

.net - xmlns 元素的顺序是否重要

c# - 同一行上的 Linq 更多条件

c# - LINQ 一对多,3 级深度问题