若数字并没有值,它应该放在最后(LINQ)

本文关键字:最后 LINQ 并没有 数字 | 更新日期: 2023-09-27 18:26:39

我正在使用linq进行sql,我的代码如下所示:

 var agendaLists =
                        dataContext.view_Agendas.Where(m => m.MeetingID == meetingID)
                            .OrderBy(n => n.Number)
                            .ThenBy(n => n.CaseNumber)
                            .ThenByDescending(s => s.MainYN)
                            .ToList();

所以基本上,我们的"n.Number"就是订单号。一切都很好,排序为1,2,3,4等等,这是正确的。但如果一个对象在n中没有值,它将显示在顶部,但我希望它放在最后。

今天它是这样分类的,假设我们得到4个对象:

Null, 1, 2, 3

我想要这样排序:

1, 2, 3, Null

任何形式的帮助都将不胜感激。

若数字并没有值,它应该放在最后(LINQ)

尝试以下操作:

n => n.Number ?? int.MaxValue

我不记得你是否真的要检查DBNull,但它是一样的。

您可以使用这种方法,假设Numberint?:

var agendaLists = dataContext.view_Agendas
    .Where(m => m.MeetingID == meetingID)
    .OrderBy(m => n.Number.HasValue ? 0 : 1)
    .ThenBy(n => n.Number)
    .ThenBy(n => n.CaseNumber)
    .ThenByDescending(s => s.MainYN)
    .ToList();