微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

LoadTest1000_1
LoadTest1000_10
LoadTest1000_1000
LoadTest1000_2
LoadTest1000_20
[etc]

当我需要自然分类时:

LoadTest1000_1
LoadTest1000_2
LoadTest1000_10
LoadTest1000_20
LoadTest1000_1000
LoadTest1000_2000
[etc]

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

解决方法

我不认为有一个很好的方法来做到这一点. sql Server首先没有对自然排序的内置支持.

也就是说,您可以使用自定义oData函数/动作.对于v3,请查看https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/odata-actions

否则,对于v4 https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/odata-actions-and-functions

无论你是随机互联网陌生人,我祝你成功!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐