我有一个包含2个字段的表:[名称]和[订单]
[Order]可以为null
使用LINQ,我希望能够通过[Order]订购,或者如果[Order]为null,则按[Name]
排序这是我的非工作代码:
from ft in FacetTypes
orderby ft.Name, ft.Order ascending
select ft
这可以在linq中使用吗?
编辑:
[订单]是int? [名称]是字符串
查询是一个实体框架4。
解答:
这是我最终的工作。
ft.Order == null ? ft.Name : SqlFunctions.StringConvert((double)ft.Order)
答案 0 :(得分:4)
您的意思是如果Order
对于单个元素为空,请使用Name
吗?如果是这样,我想想你想要的:
from ft in FacetTypes
orderby ft.Order ?? ft.Name
select ft;
这只是使用C#2中引入的 null-coalescing operator 。
答案 1 :(得分:1)
这个怎么样:
var resultSet =
ft.Order == null ?
FacetTypes.OrderBy(item => item.Name) :
FacetTypes.OrderBy(item => item.Order);