- SqlClient.SqlClient.SqlClient
- 16373
|
Pozadie
Rámec System.Data bol dôležitou súčasťou pri prvom vytvorení .NET. Poskytoval spôsob vytvárania databázových ovládačov pre .NET, podobne ako ActiveX Data Objects vo Visual Basicu. hoci API bolo odlišné, opätovne sa použil jeho názov, preto sa mu prischol názov ADO .NET.
Kľúčovým rozdielom medzi ADO a ADO .NET (t. j. System.Data) je objektový model. V ADO zvyčajne potrebujete používať len objekty Connection (pripojenie), Command (príkaz) a Recordset (súbor záznamov) a ovládač OleDB/ODBC ostatné objekty skrýva. To zlepšuje opätovné použitie kódu, ale sťažuje vývojárom sprístupnenie niektorých funkcií databázy.
NET, môžete tiež použiť OleDB/ODBC, ale vo väčšine prípadov sa používa rad tried špecifických pre databázu. Tieto triedy sú odvodené od tried DBConnection, DBCommand a DBDataReader a môžu zachovať pôvodnú opätovnú použiteľnosť kódu. Keďže však ide o silne pomenované typy, musia byť explicitne zahrnuté ako súčasť .
Pravdepodobne kvôli zjednodušeniu vývoja sa SQL Server, OleDB a ovládač ODBC stali súčasťou rámca System.Data súčasne. Tento prístup bol v tom čase prijateľný, ale spôsobil problémy so súčasným vývojovým cyklom SQL Servera.
V skutočnosti sa cyklus vydávania servera SQL Server zmenil z 3 až 5 rokov na takmer ročný. Nové vydanie si zvyčajne vyžaduje aktualizáciu ovládača .NET, ktorú nie je možné vydať včas, ak je viazaná na štandardný cyklus vydávania .NET.
Prvým krokom bolo rozdelenie System. NET Core dokončiť tento krok poskytnutím samostatných knižníc pre každý ovládač databázy. Ďalším krokom bolo úplné oddelenie ovládača servera SQL od ovládača .NET Core/Standard. Na tento účel vytvorili Microsoft.Data.SqlClient.
Aktualizácia na Microsoft.Data.SqlClient
Data.SqlClient bude pre väčšinu vývojárov veľmi jednoduchá, vyžaduje si len zmenu príkazu using na začiatku každej triedy. Okrem toho používa rovnaký názov triedy a rozhranie API a poskytuje približne rovnaké funkcie.
V prípade ľahkých ORM, ako je napríklad Dapper alebo RepoDB, nie sú potrebné žiadne ďalšie zmeny.
Ak vývojári používajú ORM na správu spojení (napr. EF, NHibernate), musia počkať na aktualizáciu ORM.
Problematickejšie sú hybridné ORM, kde jeden ORM používa Microsoft.Data.SqlClient a druhý System.Data.SqlClient a oba nefungujú správne. To je dôležité najmä pri používaní zdieľaných objektov SqlTransaction.
Dostupnosť
Verzia 1.0 Microsoft.Data.SqlClient je k dispozícii pre tieto platformy.
.NET Framework 4.6+ .NET Core 2.1+ .NET Standard 2.0+
Známe problémy
Nie každý musí hneď aktualizovať. V dokumentácii sú uvedené tieto známe problémy.
- Typy používateľských údajov (UDT) nemusia fungovať s Microsoft.Data.SqlClient. Azure Key Vault a Microsoft.Data.SqlClient nemajú úložisko kľúčov. Microsoft.Data.SqlClient nepodporuje zabezpečené enklávy, ktoré sú vždy
- Encrypted. Iba .NET Framework a .NET Core podporujú Always Encrypted, .NET Standard nie, pretože .NET Standard nemá určité závislosti šifrovania.
Odkaz na pôvodný článok: https: //blog.csdn.net/weixin_39777464/article/details/111698467 |
Predchádzajúci: Aktualizácia systémového času a časového pásma v systéme LinuxĎalšie: [Praktické]Rozšírenie virtuálneho počítača ESXI na systémovom disku Linux
|