インターフェイスではメソッド全体が定義されていませんが、共通の抽象クラスDbDataReader
which defines ReadAsync
があります。
ReadAsync
をIDataReader
インターフェイスの一部として含める最も重要な理由は、下位互換性の観点からの変更の変更を避けるためです。
は
IDataReader
場合、新しいフレームワークバージョンで
ReadAsync
、まったく実施されず、これらの実装が破壊されることになる、いわゆるインタフェースに頼る任意ADO.NETプロバイダまたはフレームワークを実装するために任意
データリーダを強制することになります。
おそらく彼らはインターフェイス分離原則を使用することができ、彼らは定期的IDataReader
メンバーの非同期の味を提供することができIDataReaderAsync
と呼ばれる新しいインターフェイスを定義することができます...しかし、少なくとも、彼らはすでに、すでにある基本クラスを提供してきました
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
を派生している可能性があります。
「OOPを理解していないSQLチーム」の部分は、とにかく非常に大胆な声明です。\ –
@MatiaszFidemraizerそう、言ってはいけません。 –