Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个列上一个可能为空的Linq orderby_Linq - Fatal编程技术网

多个列上一个可能为空的Linq orderby

多个列上一个可能为空的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 ?

我有一个表,其中有两个字段:[Name]和[Order]

[订单]可以为空

使用LINQ,我希望能够通过[order]进行订购,或者如果[order]为空,则通过[Name]进行订购

这是我的非工作代码:

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