ADO.NET-architektúra a Microsoft.Data.SqlClienttel

Az ADO.NET a .NET-be beépített adathozzáférési modell. Microsoft. Data.SqlClient ezt a modellt valósítja meg SQL Server-kompatibilis adatbázisokhoz, és SQL Server-specifikus képességeket is hozzáad.

A Microsoft. Data.SqlClient kezdőlapja adja a driver funkciótérképet és a gyártási alapvonalat. Ez a cikk bemutatja, hogyan illeszkedik az illesztőprogram az ADO.NET rendszerébe.

ADO.NET absztrakciók és SqlClient típusok

Az ADO.NET szolgáltatótól független absztrakciókat definiál a System.Data.Common névtérben. Microsoft. Data.SqlClient konkrét megvalósításokat biztosít.

ADO.NET absztrakció SqlClient típus Alkalmazás célja
DbConnection SqlConnection Logikus kapcsolatot nyit egy adatbázishoz.
DbCommand SqlCommand SQL szöveget vagy egy tárolt eljárást futtat.
DbParameter SqlParameter Külön küld egy gépelt értéket a parancsszövegtől.
DbDataReader SqlDataReader Az eredménysorokat folyamatosan továbbítja a szerverről.
DbTransaction SqlTransaction A parancsokat egy atomi tranzakcióba csoportosítja.
DbDataAdapter SqlDataAdapter Kitölti és frissíti a kapcsolat nélküli DataSet és DataTable objektumokat.
DbBatch SqlBatch Több parancsot küld egy tételben a támogatott célkeretrendszereken.

Programozz az ADO.NET absztrakciók ellen, amikor egy könyvtárnak több adatbázis-szolgáltatót kell támogatnia. Használd a SqlClient típusokat, amikor egy alkalmazás az SQL Server-t célozza meg, és szolgáltató-specifikus funkciókra van szükség.

Kapcsolt adathozzáférés

A connected access elérhetővé teszi a kapcsolatot, amíg egy parancs fut, és amíg az alkalmazás olvassa az eredményeket.

Egy gyakori kérés követi ezt a sorrendet:

  1. Hozzon létre egy SqlConnection kapcsolatkarakterláncból.
  2. Nyissa meg a kapcsolatot.
  3. Hozz létre egy SqlCommand elemet, és adj hozzá SqlParameter értékeket.
  4. Hajtsa végre a parancsot.
  5. Feldolgozz egy skalárértéket, az érintett sorszámot, vagy SqlDataReader.
  6. Kezeld az olvasót, parancsot és kapcsolatot.

A legtöbb webes API, szolgáltatás, munkatárs és parancssoros alkalmazás esetén használj csatlakoztatott hozzáférést. SqlDataReader sorokat streamel, és általában kevesebb memóriát használ, mint a teljes eredmény betöltése egy DataSet-be.

A(z) SqlConnection megnyitása és felszabadítása minden munkaegységhez a megszokott minta. A kapcsolat pooling újrahasználja az alapul szolgáló fizikai kapcsolatot. Ne tartsd nyitva egyetlen globális kapcsolatot az alkalmazás élettartama alatt.

Megszakított adathozzáférés

SqlDataAdapter adatokat továbbít az SQL Server és egy memóriabeli DataSet vagy DataTable között. Az alkalmazás lezárhatja a kapcsolatot, miközben olvassa vagy módosítja a memóriában lévő adatokat, majd újra csatlakozhat, hogy frissítéseket küldhessen.

Használj megszakított hozzáférést, ha szükséged van rá:

  • Adatkötés a következőhöz: DataSet vagy DataTable.
  • Memóriabeli kapcsolatok és korlátok.
  • Offline végzett szerkesztések, amelyeket később szinkronizálnak.
  • Kompatibilitás egy meglévő alkalmazással, amely DataAdapterekre épül.

Új, kérésorientált szolgáltatásoknál kezdd a SqlCommand -vel és SqlDataReader hacsak nincs szükséged a lekapcsolt objektummodellre.

SQL Server-specifikus jellemzők

Microsoft. Data.SqlClient olyan API-kat és kapcsolati viselkedést ad hozzá, amelyek nem részei a szolgáltatófüggetlen ADO.NET szerződésnek:

  • Microsoft Entra hitelesítés és hozzáférési token visszahívások.
  • TDS 8.0 szigorú titkosítási és SQL Server tanúsítvány opciók.
  • Mindig titkosított és biztonságos enklávék.
  • SqlBulkCopy nagy áteresztőképességű adatbetöltéshez.
  • Táblaértékkel megadott paraméterek.
  • SQL Server adattípusok, beleértve a JSON és vektortípusokat.
  • Konfigurálható újrapróbálkozás logika.
  • SQL Server diagnosztika, statisztika és számlálók.
  • Elérhetőségi csoport és a túlkapcsolódási lehetőségek.

E funkciók használata a kódot a Microsoft.Data.SqlClienthez köti. Ha az alkalmazás többi részének szolgáltatótól függetlennek kell maradnia, tartsd a szolgáltató-specifikus kódot egy adathozzáférési határ mögött.

objektum élettartama és párhuzamosság

Azonnal szabadítsd el a kapcsolatokat, parancsokat, olvasókat, tranzakciókat és tömeges másolási objektumokat. Használd await using aszinkron kóddal, amikor egy típus implementálja IAsyncDisposable-t .

SqlConnection, SqlCommand, SqlDataReader, és SqlTransaction nem támogatja több szál egyidejű használatát. Minden egyidejű műveletnek adjunk saját kapcsolatot, és támaszkodjunk a csatlakozási poolingra. A Multiple Active Result Set (MARS) engedélyezi több aktív eredményhalmazt egy kapcsolaton, de nem teszi a SqlClient objektumokat szálbiztonsággá.

Csomagok és névterek

Telepítsd a Microsoft.Data.SqlClient NuGet csomagot és importáld a Microsoft.Data.SqlClient névteret. A meghajtó függetlenül érkezik a .NET-től, így a funkciói, kiadásai és támogatási ütemtervei eltérnek a .NET futásidőtől.

System.Data.SqlClient az idősebb szolgáltató. Használd a Microsoft. Data.SqlClient-et új fejlesztéshez. Egy meglévő alkalmazás esetén kövesse a(z) Áttelepítés a System.Data.SqlClientről a Microsoft.Data.SqlClientre című cikk útmutatását.