实体框架是否真的在包括驱动程序在内的所有级别都是异步的?

时间:2016-03-30 19:48:29

标签: c# asp.net-mvc entity-framework asynchronous

在使用Entity Framework的ASP.NET MVC中使用async时,我很好奇整个堆栈是否真的异步。

即。如果异步操作调用.SaveChangesAsync,SQL Server驱动程序是异步还是只是阻塞并在其自己的线程池中运行?

1 个答案:

答案 0 :(得分:0)

驱动程序不属于EF,并且没有“驱动程序”,因为EF可以与多个驱动程序一起使用。

EF一直到ADO.NET都是异步的。

ADO.NET以向后兼容的方式提供异步操作,因此如果您使用旧驱动程序,它将同步运行操作,但提供程序可以使用真正的异步操作覆盖此操作。

ADO.NET中的SQLServer提供程序,它最可能与SQLServer一起使用的提供程序使用异步I / O.许多(大多数?)其他提供者也是如此。