在 asp.net Web Api2 中,当您为具有 Entity Framework 的模型创建异步 Web API Controller 时,默认情况下,新 Controller 中的第一个方法如下所示:
public IQueryable<MyModel> GetMyModel()
{
return db.MyModel;
}
此方法的 JSON 输出只是所有 MyModel
的数组条目。同时,POST、PUT、GET(int id) 和 DELETE 的所有其他方法都标记为 async
。并返回 Task<IHttpActionResult>
.为什么第一个 GET 方法不是同样的风格,像这样:
public async Task<IHttpActionResult> GetMyModel()
{
return Ok(await db.MyModel.ToArrayAsync());
}
我试过了,它产生了相同的 JSON 输出。
最佳答案
因为 Web API 无论如何都会具体化结果,所以生成所需的最少代码。
通过调用 ToArrayAsync()
,您实际上是在做不必要的工作,无论如何稍后都会为您完成。
关于c# - 为什么 asp.net Web API 上的 GET 方法返回 IQueryable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34924726/