加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET Web API方法返回IQueryable是否有意义?

发布时间:2020-12-16 06:30:56 所属栏目:asp.Net 来源:网络整理
导读:我正在开发一个使用新Web API的项目,我注意到有人正在返回IQueryable T来自Get方法. 我的理解是IQueryable对于提高性能(延迟执行)很有用,但我不认为HTTP连接另一端的客户端能够利用它. 我的直觉告诉我,这应该是IEnumberable T而不是.我这是对的吗? 解决方法
我正在开发一个使用新Web API的项目,我注意到有人正在返回IQueryable< T>来自Get方法.

我的理解是IQueryable对于提高性能(延迟执行)很有用,但我不认为HTTP连接另一端的客户端能够利用它.

我的直觉告诉我,这应该是IEnumberable< T>而不是.我这是对的吗?

解决方法

对返回IQueryable< T>的方法的响应可以通过在查询字符串中传递一些类似odata的参数来“查询”($top,$skip,$filter,$orderby).例如,如果您的资源可以在… / api / People中找到,则可以发送这些请求,这将导致服务器返回不同的数据:

.../api/People?$top=10                    ==> return only the first 10 elements
.../api/People?$skip=10&$top=5            ==> return the 11th to 15th elements
.../api/People?$filter=Name%20eq%20'John' ==> Only return people named "John"
.../api/People?$orderby=Name&$top=10      ==> return the first 10 elements,ordered by name

请注意,在beta版本中,任何返回IQueryable< T>的操作都会发生.自动添加此“查询”支持.在最新的位(来自codeplex),您需要手动将[Queryable]属性添加到操作以启用此行为.

如果您不想要查询行为,那么是,返回IEnumerable< T>很好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读