多个列上一个可能为空的Linq orderby
我有一个表,其中有两个字段:[Name]和[Order] [订单]可以为空 使用LINQ,我希望能够通过[order]进行订购,或者如果[order]为空,则通过[Name]进行订购 这是我的非工作代码:多个列上一个可能为空的Linq orderby,linq,Linq,我有一个表,其中有两个字段:[Name]和[Order] [订单]可以为空 使用LINQ,我希望能够通过[order]进行订购,或者如果[order]为空,则通过[Name]进行订购 这是我的非工作代码: from ft in FacetTypes orderby ft.Name, ft.Order ascending select ft 在林克这可能吗 编辑: [订单]是整数吗? [名称]是字符串 该查询是一个实体框架4 答复: 这就是我最终要做的 ft.Order == null ?
from ft in FacetTypes
orderby ft.Name, ft.Order ascending
select ft
在林克这可能吗
编辑:
[订单]是整数吗?
[名称]是字符串
该查询是一个实体框架4
答复:
这就是我最终要做的
ft.Order == null ? ft.Name : SqlFunctions.StringConvert((double)ft.Order)
您的意思是如果单个元素的
Order
为空,请改用Name
?如果是这样,我想你想要:
from ft in FacetTypes
orderby ft.Order ?? ft.Name
select ft;
这只是使用C#2中引入的空合并运算符。这是怎么回事:
var resultSet =
ft.Order == null ?
FacetTypes.OrderBy(item => item.Name) :
FacetTypes.OrderBy(item => item.Order);
干杯我试过了。错误说明:“运算符??不能应用于int?和string类型的操作数。必须添加SqlFunctions。StringConvert((double)ft.Order)为everyones的帮助干杯。这就是我使用的:“ft.Order==null?”?ft.Name:SqlFunctions.StringConvert((double)ft.Order)“@sf:对,以前不清楚数据类型是什么。很高兴它现在工作了。您的代码有什么不工作的地方?您希望得到什么结果?什么是
SqlFunctions.StringConvert
?