Если метод асинхронной библиотеки вызывает await
? Например, предположим, что у меня есть метод библиотеки служб данных, который имеет доступ к контексту данных Entity Framework 6 с именем "репозиторий". Насколько я могу судить, у меня есть два способа определения этого метода:
public static async Task<IEnumerable<Blogs>>
GetAllBlogsAsync(EfDataContext db)
{
return await db.Blogs
.OrderByDescending(b => b.Date)
.SelectAsync();
}
или без async
/await
украшения
public static Task<IEnumerable<Blogs>>
GetAllBlogsAsync(EfDataContext db)
{
return db.Blogs
.OrderByDescending(b => b.Date)
.SelectAsync();
}
В конечной точке приложения, в этом случае действие контроллера MVC, вызов будет одинаковым для любого метода:
public async Task<ActionResult> Blogs()
{
var blogs = await BlogService.GetAllBlogs(_blogRepository);
return View(blogs);
}
Этот сценарий, конечно, может быть более сложным, если приложение вызывает цепочку асинхронных методов. Если каждый метод в цепочке вызывает await
, или должен быть только один оператор await
в конце цепочки вызовов и какая разница это сделает?