我看到大多数关于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);
}
&#13;
答案 0 :(得分:4)
要么是正确的。 IQueryable
的便利之处在于您可以查询它。
例如:您可以将OData与WebAPI一起使用,其中需要一些灵活性。然后,您可以像mysite.com/odata/Orders?$filter=OrderID eq 1156
那样发出AJAX请求。
以下是有关OData的更多信息:http://www.odata.org/
对于具有分页支持的动态搜索API,它被证明非常方便。