Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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
C# OData$orderby查询中的自然排序_C#_Sorting_Asp.net Web Api2_Odata - Fatal编程技术网

C# OData$orderby查询中的自然排序

C# OData$orderby查询中的自然排序,c#,sorting,asp.net-web-api2,odata,C#,Sorting,Asp.net Web Api2,Odata,我正在ASP.NET API 2控制器中使用[EnableQuery](System.Web.Http.OData)来启用OData v3过滤/排序/分页。我注意到,使用$orderby子句返回的数据排序如下(这里有一些示例,它们是字符串,不一定有模式): 当我需要自然排序时: LoadTest1000_1 LoadTest1000_2 LoadTest1000_10 LoadTest1000_20 LoadTest1000_1000 LoadTest1000_2000 [etc] 如何启用这

我正在ASP.NET API 2控制器中使用
[EnableQuery]
(System.Web.Http.OData)来启用OData v3过滤/排序/分页。我注意到,使用
$orderby
子句返回的数据排序如下(这里有一些示例,它们是字符串,不一定有模式):

当我需要自然排序时:

LoadTest1000_1
LoadTest1000_2
LoadTest1000_10
LoadTest1000_20
LoadTest1000_1000
LoadTest1000_2000
[etc]

如何启用这种排序?是否有任何扩展点可以用来提供我自己的排序逻辑?

我认为没有一种好方法可以做到这一点。SQL Server首先没有内置对自然排序的支持

也就是说,您可能可以使用自定义oData函数/操作。对于v3,请查看

否则,对于v4

无论你是谁,我都祝你成功

LoadTest1000_1
LoadTest1000_2
LoadTest1000_10
LoadTest1000_20
LoadTest1000_1000
LoadTest1000_2000
[etc]