Trong ASP.NET Web API 2, sự khác nhau giữa những điều sau đây là gì?Trả về IHttpActionResult và IEnumerable <Item> và IQueryable <Item>
public async Task<IEnumerable<MyItem>> GetMyItems()
{
//... code ..., var myItems = await ...
return myItems;
}
và
public async Task<IQueryable<MyItem>> GetMyItems()
{
//... code ..., var myItems = await ...
return myItems;
}
và
public async Task<IHttpActionResult> GetMyItems()
{
//... code ..., var myItems = await ...
return Ok(myItems);
}
Tôi có nên trở IHttpActionResult
hoặc IEnumerable<MyItem>
/IQueryable<MyItem>
?
Nếu phương pháp hành động của bạn không bao gồm việc sử dụng từ khoá 'await', thì bạn không nên trả lại một 'Tác vụ'.Thay vào đó, bạn chỉ cần trả lại 'IHttpActionResult',' IEnumerable 'hoặc' IQueryable '. Xem câu hỏi [Tác vụ IHttpActionResult vs async ] (https://stackoverflow.com/q/29100732/1497596). Ngoài ra, hãy xem câu hỏi [Sử dụng hiệu quả async/await với ASP.NET Web API] (https://stackoverflow.com/q/31185072/1497596). –
DavidRR