Web API方法:返回IHttpActionResult或IQueryable

问题描述 投票:4回答:1

我看到大多数关于Web API方法的评论说他们应该返回IHttpActionResult。当我在Visual Studio中添加一个Controller并选择“Web API 2 Controller with Action For Entity Framework”时,它输入了这两个方法(以及POST,PUT和DELETE)。它使用IQueryable返回多个记录而不是IHttpActionResult。哪个是正确的,为什么?

        // GET: api/Trades
        public IQueryable<Trade> GetTrades()
        {
            return db.Trades;
        }

        // GET: api/Trades/5
        [ResponseType(typeof(Trade))]
        public IHttpActionResult GetTrade(int id)
        {
            Trade trade = db.Trades.Find(id);
            if (trade == null)
            {
                return NotFound();
            }

            return Ok(trade);
        }
asp.net-web-api
1个回答
4
投票

要么是正确的。 IQueryable的便利是你可以查询它。

例如:您可以将OData与WebAPI一起使用,这需要一些灵活性。然后,您可以像mysite.com/odata/Orders?$filter=OrderID eq 1156一样制作AJAX请求。

这里有更多关于OData:http://www.odata.org/

事实证明,对于具有分页支持的动态搜索API,它非常方便。

© www.soinside.com 2019 - 2024. All rights reserved.