Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 6692|Odpověď: 0

[Komunikace] Microsoft spouští Microsoft.Data.SqlClient, který nahrazuje System.Data.SqlClient

[Kopírovat odkaz]
Zveřejněno 27.12.2021 22:21:14 | | |
pozadí

V počátcích .NET byl framework System.Data důležitou součástí. Umožňuje vytvářet .NET databázové ovladače podobně jako ActiveX Data Objects ve Visual Basicu. Ačkoliv je API odlišné, jeho název je znovu použit, odtud přezdívka ADO .NET.

Jedním z klíčových rozdílů mezi ADO a ADO .NET (tj. System.Data) je objektový model. V ADO obvykle stačí použít objekty Connection, Command a Recordset, a ovladač OleDB/ODBC skrývá něco jiného. To zlepšuje opětovné použití kódu, ale je pro vývojáře obtížné některé databázové funkce zpřístupnit.

V ADO .NET můžete také použít OleDB/ODBC, ale ve většině případů budete používat řadu databázově specifických tříd. Tyto třídy jsou odvozeny z DBConnection, DBCommand a DBDataReader, které zachovávají znovupoužitelnost původního kódu. Ale protože jsou to silně pojmenované typy, musí být explicitně součástí .NET knihovny.

Pravděpodobně pro zjednodušení vývoje jsou SQL Server, OleDB a ODBC ovladače všechny součástí frameworku System.Data. Tento přístup byl tehdy přijatelný, ale způsoboval problémy současnému vývojovému cyklu SQL Serveru.

Ve skutečnosti se cykly vydávání SQL Serveru změnily z 3 na 5 let téměř každý rok. Nové verze často vyžadují aktualizace ovladače .NET, což není možné, pokud je vázána na cyklus vydávání standardu .NET.

Prvním krokem je rozdělení knihovny System.Data. NET Core tento krok dosahuje tím, že poskytuje samostatné knihovny pro každý ovladač databáze. Dalším krokem je úplné oddělení ovladače SQL Server od .NET Core/Standard. K tomu vytvořili Microsoft.Data.SqlClient.

Upgrade na Microsoft.Data.SqlClient

Pro většinu vývojářů bude používání Microsoft.Data.SqlClient velmi jednoduché, stačí upravit příkaz using na začátku každé třídy. Navíc používá stejné názvy tříd a API a nabízí přibližně stejné funkce.

U lehkých ORM jako Dapper nebo RepoDB nejsou potřeba žádné další změny.

Pokud vývojáři používají ORM ke správě připojení (např. EF, NHibernate), musí počkat na upgrady ORM.

Nejproblematičtější jsou ty, které míchají ORM. Pokud jeden ORM používá Microsoft.Data.SqlClient a druhý System.Data.SqlClient, nebude to fungovat současně. To je obzvlášť důležité při práci se sdílenými objekty SqlTransaction.

použitelnost

Verze 1.0 Microsoft.Data.SqlClient je dostupná pro tyto platformy:

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


Známé problémy

Ne každý musí hned upgradovat. Tyto známé problémy jsou uvedeny v dokumentaci:

  • User Data Type (UDT) nemusí fungovat s Microsoft.Data.SqlClient.
  • Azure Key Vault a Microsoft.Data.SqlClient nemají úložiště klíčů.
  • Microsoft.Data.SqlClient nepodporuje Always Encrypted pro zabezpečené enklávy.
  • Pouze .NET Framework a .NET Core podporují Always Encrypted, .NET Standard nikoliv, protože .NET Standard postrádá některé šifrovací závislosti.


Původní odkaz:https://blog.csdn.net/weixin_39777464/article/details/111698467




Předchozí:Linux aktualizuje systém v čase a časovém pásmu
Další:Virtuální stroj ESXI rozšiřuje kapacitu disku systému Linux
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com