fons
.NET sākumā System.Data ietvars bija svarīgs komponents. Tas nodrošina veidu, kā izveidot .NET datu bāzes draiverus, līdzīgi kā Visual Basic ActiveX datu objekti. Lai gan API ir atšķirīgs, tā nosaukums tiek izmantots atkārtoti, līdz ar to segvārds ADO .NET.
Viena no galvenajām atšķirībām starp ADO un ADO .NET (t.i., System.Data) ir objekta modelis. ADO parasti jāizmanto tikai savienojuma, komandu un ierakstu kopas objekti, un OleDB/ODBC draiveris slēpj kaut ko citu. Tas uzlabo koda atkārtotu izmantošanu, bet izstrādātājiem ir grūti atklāt dažas datu bāzes funkcijas.
ADO .NET varat izmantot arī OleDB / ODBC, bet vairumā gadījumu jūs izmantosiet virkni datu bāzei specifisku klašu. Šīs klases ir atvasinātas no DBConnection, DBCommand un DBDataReader, kas saglabā oriģinālā koda atkārtotu izmantojamību. Taču, tā kā tie ir stingri nosaukti tipi, tiem ir jābūt skaidri iekļautiem .NET bibliotēkā.
Iespējams, lai vienkāršotu izstrādi, SQL Server, OleDB un ODBC draiveri ir daļa no System.Data sistēmas. Šī pieeja tolaik bija pieņemama, taču tā radīja problēmas ar pašreizējo SQL Server izstrādes ciklu.
Faktiski SQL Server izlaišanas cikli ir mainījušies no 3 līdz 5 gadiem gandrīz katru gadu. Jauniem laidieniem bieži ir nepieciešami .NET draivera atjauninājumi, kas nav iespējams, ja tas ir saistīts ar .NET standarta izlaišanas ciklu.
Pirmais solis ir sadalīt System.Data bibliotēku. NET Core veic šo darbību, nodrošinot atsevišķas bibliotēkas katram datu bāzes draiverim. Nākamais solis ir pilnībā atdalīt SQL Server draiveri no .NET Core/Standard. Lai to izdarītu, viņi izveidoja Microsoft.Data.SqlClient.
Jaunināšana uz Microsoft.Data.SqlClient
Lielākajai daļai izstrādātāju Microsoft.Data.SqlClient izmantošana būs ļoti vienkārša, vienkārši modificējot lietošanas paziņojumu katras klases augšpusē. Turklāt tas izmanto tos pašus klašu nosaukumus un API un nodrošina aptuveni tādas pašas funkcijas.
Viegliem ORM, piemēram, Dapper vai RepoDB, papildu izmaiņas nav nepieciešamas.
Ja izstrādātāji izmanto ORM, lai pārvaldītu savienojumus (piemēram, EF, NHibernate), viņiem ir jāgaida ORM jauninājumi.
Apgrūtinošākie ir tie, kas sajauc ORM. Ja viens ORM izmanto Microsoft.Data.SqlClient, bet otrs izmanto System.Data.SqlClient, tas nedarbosies vienlaikus. Tas ir īpaši svarīgi, strādājot ar koplietojamiem SqlTransaction objektiem.
Izmantojamību
Microsoft.Data.SqlClient versija 1.0 ir pieejama šādām platformām:
- .NET Framework 4.6+
- .NET Core 2.1+
- .NET standarts 2.0+
Zināmās problēmas
Ne visiem ir nepieciešams jaunināt uzreiz. Šīs zināmās problēmas ir norādītas dokumentācijā:
- Lietotāja datu tips (UDT) var nedarboties ar Microsoft.Data.SqlClient.
- Azure Key Vault un Microsoft.Data.SqlClient nav atslēgu krātuves.
- Microsoft.Data.SqlClient neatbalsta vienmēr šifrētu drošiem anklāviem.
- Tikai .NET Framework un .NET Core atbalsts vienmēr ir šifrēts, .NET Standard to neatbalsta, jo .NET Standard trūkst dažu šifrēšanas atkarību.
Oriģinālā saite:https://blog.csdn.net/weixin_39777464/article/details/111698467 |