Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 6692|Svare: 0

[Kommunikasjon] Microsoft lanserer Microsoft.Data.SqlClient for å erstatte System.Data.SqlClient

[Kopier lenke]
Publisert på 27.12.2021 22:21:14 | | |
bakgrunn

I de tidlige dagene av .NET var System.Data-rammeverket en viktig komponent. Den gir en måte å lage .NET-databasedrivere på, lik Visual Basics ActiveX Data Objects. Selv om API-et er annerledes, er navnet gjenbrukt, derav kallenavnet ADO .NET.

En viktig forskjell mellom ADO og ADO .NET (dvs. System.Data) er objektmodellen. I ADO trenger du vanligvis bare å bruke Connection-, Command- og Recordset-objektene, og OleDB/ODBC-driveren skjuler noe annet. Dette forbedrer gjenbruk av kode, men det er vanskelig for utviklere å eksponere noen databasefunksjoner.

I ADO .NET kan du også bruke OleDB/ODBC, men i de fleste tilfeller vil du bruke en serie databasespesifikke klasser. Disse klassene er avledet fra DBConnection, DBCommand, og DBDataReader, som opprettholder gjenbrukbarheten til den opprinnelige koden. Men fordi de er sterkt navngitte typer, må de eksplisitt være en del av .NET-biblioteket.

Sannsynligvis for å forenkle utviklingen, er SQL Server, OleDB og ODBC-drivere alle en del av System.Data-rammeverket. Denne tilnærmingen var akseptabel på den tiden, men skapte problemer i den nåværende utviklingssyklusen for SQL Server.

Faktisk har SQL Server-utgivelsessykluser endret seg fra 3 til 5 år til nesten hvert år. Nye utgivelser krever ofte oppdateringer av .NET-driveren, noe som ikke er mulig hvis den er knyttet til .NETs standardutgivelsessyklus.

Det første steget er å dele System.Data-biblioteket. NET Core oppnår dette trinnet ved å tilby separate biblioteker for hver databasedriver. Neste steg er å fullstendig skille SQL Server-driveren fra .NET Core/Standard. For å gjøre dette opprettet de Microsoft.Data.SqlClient.

Oppgrader til Microsoft.Data.SqlClient

For de fleste utviklere vil det være veldig enkelt å bruke Microsoft.Data.SqlClient, bare å endre using statement øverst i hver klasse. I tillegg bruker det de samme klassenavnene og API-ene, og tilbyr omtrent de samme funksjonene.

For lette ORM-er som Dapper eller RepoDB kreves det ingen ytterligere endringer.

Hvis utviklere bruker ORM-er for å administrere tilkoblinger (f.eks. EF, NHibernate), må de vente på ORM-oppgraderinger.

De mest problematiske er de som blander ORM-er. Hvis én ORM bruker Microsoft.Data.SqlClient og den andre bruker System.Data.SqlClient, vil det ikke fungere samtidig. Dette er spesielt viktig når man jobber med delte SqlTransaction-objekter.

Brukervennlighet

Versjon 1.0 av Microsoft.Data.SqlClient er tilgjengelig for disse plattformene:

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


Kjente problemer

Ikke alle trenger å oppgradere med en gang. Disse kjente problemene er notert i dokumentasjonen:

  • User Data Type (UDT) fungerer kanskje ikke med Microsoft.Data.SqlClient.
  • Azure Key Vault og Microsoft.Data.SqlClient har ikke et nøkkellager.
  • Microsoft.Data.SqlClient støtter ikke Always Encrypted for sikre enklaver.
  • Kun .NET Framework og .NET Core støtter Always Encrypted, .NET Standard gjør det ikke, fordi .NET Standard mangler noen krypteringsavhengigheter.


Original lenke:https://blog.csdn.net/weixin_39777464/article/details/111698467




Foregående:Linux oppdaterer systemtid og tidssone
Neste:ESXI-virtuell maskin utvider diskkapasiteten til Linux-systemet
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com