Nat*_*per 3 c# sql async-await
虽然SqlDataReader.Read()实现了IDataReader.Read(),但SqlDataReader在使用异步方法时似乎没有接口ReadAsync().
首先,如果我错了,请纠正我.
这有什么理由或理由吗?有没有什么关于新的async-await东西证明缺乏接口在这里?这有点莫名其妙.
虽然接口没有定义整个方法,但是有一个共同的抽象类DbDataReader定义ReadAsync.
可能不包括ReadAsync作为IDataReader界面一部分的最重要原因是避免在向后兼容性方面的突破性变化.
如果IDataReader在较新的框架版本中强制任何数据读取器 实现ReadAsync,依赖于所谓的接口的任何ADO.NET提供者或框架根本不会实现它,并且这些实现将被破坏.
也许他们可以使用接口隔离原则,他们可以定义一个新的接口IDataReaderAsync,可以提供常规IDataReader成员的异步风格......但是,至少,他们已经提供了一个已经由许多框架类派生的基类:
System.Data.DataTableReader
System.Data.EntityClient.EntityDataReader
System.Data.Odbc.OdbcDataReader
System.Data.OleDb.OleDbDataReader
System.Data.OracleClient.OracleDataReader
System.Data.SqlClient.SqlDataReader
......以及第三方ADO.NET提供商IDataReader也可能派生出来DbDataReader.
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |