c# - .NET 4.5 的异步功能是否也适用于 MySql 和其他数据库?

标签 c# .net asynchronous ado.net async-await

据我所知,.NET 4.5 附带了一系列功能,可以使异步数据库操作更容易实现。 MSDN 表示,如果连接字符串未设置为异步工作,ADO.NET 的任何异步方法都不会以异步方式工作。因此,SqlConnectionStringBuilder 附带了一个名为 AsynchronousProcessing 的属性。

我想知道这些异步功能是否也适用于其他数据库服务器(例如 mysql)?我应该怎样做才能使 aync 使用 .NET 无法识别的非 SQL 数据库? (例如 RavenDB)?

最佳答案

所有驱动的异步方法都在DbDataReader中定义,例如DbDataReader.ReadAsync 。由特定的驱动程序使用特定的实现覆盖这些方法,以利用每个数据库的异步特性并使用例如。自然的异步操作,而不是包装在线程中的同步操作。

也就是说,MySQL Connector/Net 6.8 添加了对 asynchronous operations in Entity Framework 6 的支持但 MySqlDataReader 类不提供 ReadAsync 方法。这是因为 Connector 使用旧的体系结构(2.0 之前的版本),实现 IDataReader 接口(interface),而不是从 .NET 2.0 中引入的通用 DbDataReader 类派生。

关于c# - .NET 4.5 的异步功能是否也适用于 MySql 和其他数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36080852/

相关文章:

C# 我应该如何将给定的数据从对象收集到另一个实例?

javascript - ASP.NET 如何在客户端引发事件?

javascript - 有没有更好的方法来创建不使用 setInterval 的异步更新?

asynchronous - 如何在单个应用程序中使用 gevent 和 tornado?

c# - 确保顺序堆叠的 3 不会出现在随机排列的 4 数组中?

c# - 如何绕过 FormClosing 事件

c# - 通过 C# 访问 Google 拼写/建议 API

c# - Resources.Designer.cs 中的 XML 注释?

.net - 如何保持 .NET 程序逻辑(合理地)保密?

javascript - 如何使用异步 API 调用作为 Javascript 中的值构建对象