【发布时间】:2014-02-21 03:11:16
【问题描述】:
我有一个需要以特定方式排序的对象列表。
相关的表格字段是:
- ID(整数)
- IsMandatory(位)
- ParentID(int 可为空)
- 代码(varchar)
我需要它们首先按 IsMandatory=true 排序,然后按 Code 排序,但是任何具有 ParentID 的内容都必须按 Code 排序,但直接出现在 ID 与 ParentID 相同的行之后(并且这些记录将始终将 IsMandatory 设置为 NULL )。
一些示例数据,这也是它们在订购时应该出现的顺序:
- ID=1, IsMandatory=1, ParentID=NULL, Code="A"
- ID=2,IsMandatory=NULL,ParentID=1,代码="A"
- ID=3,IsMandatory=NULL,ParentID=1,代码="B"
- ID=4, IsMandatory=1, ParentID=NULL, Code="B"
- ID=5,IsMandatory=0,ParentID=NULL,代码="C"
- ID=6, IsMandatory=NULL, ParentID=5, Code="A"
- ID=7, IsMandatory=0, ParentID=NULL, Code="D"
如何在 Linq to SQL orderby 中最好地实现这一点?
【问题讨论】:
标签: linq linq-to-sql