この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 6692|答える: 0

[通信] MicrosoftがSystem.Data.SqlClientを置き換えるためにMicrosoft.Data.SqlClientをリリース

[リンクをコピー]
掲載地 2021/12/27 22:21:14 | | |
バックグラウンド

.NETの初期には、System.Dataフレームワークが重要な要素でした。 Visual BasicのActiveX Data Objectsに似た.NETデータベースドライバの作成方法を提供します。 APIは異なりますが、その名称は再利用されており、そのため愛称ADO .NETとなっています。

ADOとADO .NET(すなわちSystem.Data)の大きな違いの一つはオブジェクトモデルです。 ADOでは通常、Connection、Command、Recordsetのオブジェクトだけを使う必要があり、OleDB/ODBCドライバーは別のものを隠しています。 これによりコードの再利用は改善されますが、開発者が一部のデータベース機能を公開するのは難しいです。

ADO .NETではOleDBやODBCも使えますが、ほとんどの場合、データベース固有のクラスをいくつか使います。 これらのクラスはDBConnection、DBCommand、DBDataReaderから派生しており、元のコードの再利用性を維持しています。 しかし、それらは強い名前を持つ型であるため、明示的に.NETライブラリの一部である必要があります。

おそらく開発を簡単にするために、SQL Server、OleDB、ODBCドライバはすべてSystem.Dataフレームワークの一部です。 このアプローチは当時は許容されていましたが、現在のSQL Server開発サイクルには問題が生じました。

実際、SQL Serverのリリースサイクルは3年から5年、ほぼ毎年変化しています。 新しいリリースはしばしば.NETドライバーの更新を必要としますが、.NET標準のリリースサイクルに紐づいている場合はそれが不可能です。

最初のステップはSystem.Dataライブラリを分割することです。 NET Coreは、各データベースドライバーごとに別々のライブラリを提供することでこのステップを実現します。 次のステップは、SQL Serverドライバーを.NET Core/Standardから完全に分離することです。 そのために、Microsoft.Data.SqlClientを開発しました。

Microsoft.Data.SqlClient へのアップグレード

ほとんどの開発者にとって、Microsoft.Data.SqlClientの使用は非常に簡単で、各クラスの冒頭にある使用文を修正するだけです。 さらに、同じクラス名やAPIを使い、ほぼ同じ機能を提供します。

DapperやRepoDBのような軽量ORM(軽量ORM)では、それ以上の変更は不要です。

開発者が接続管理にORMを使う場合(例:EF、NHibernate)、ORMのアップグレードを待つ必要があります。

より厄介なのはORMを混在させるものだ。 一方のORMがMicrosoft.Data.SqlClientを使い、もう一方がSystem.Data.SqlClientを使う場合、同時に動作しません。 これは特に共有のSqlTransactionオブジェクトを扱う際に重要です。

ユーザビリティ

Microsoft.Data.SqlClientのバージョン1.0は以下のプラットフォーム向けに利用可能です:

  • .NET Framework 4.6+
  • .NET Core 2.1+
  • .NET Standard 2.0+


既知の問題点

全員がすぐにアップグレードする必要はありません。 以下の既知の問題点は文書に記載されています:

  • ユーザーデータ型(UDT)はMicrosoft.Data.SqlClientでは動作しない場合があります。
  • Azure Key VaultとMicrosoft.Data.SqlClientにはキーストアはありません。
  • Microsoft.Data.SqlClientは、安全なエンクレーブのためにAlways Encryptedをサポートしていません。
  • .NET Frameworkと.NET CoreのみがAlways Encryptedをサポートしており、.NET Standardは暗号化依存関係がないためサポートしていません。


元のリンク:https://blog.csdn.net/weixin_39777464/article/details/111698467




先の:Linuxのアップデート、システムの時間とタイムゾーン
次に:ESXI仮想マシンはLinuxシステムのディスク容量を拡張します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com