Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez az adatbázis-szolgáltató lehetővé teszi az Entity Framework Core használatát a Microsoft SQL Serverrel (beleértve az Azure SQL-t és az Azure Synapse Analyticset). A szolgáltatót a Entity Framework Core Projectrészeként tartják fenn.
Install
Telepítse a Microsoft.EntityFrameworkCore.SqlServer NuGet-csomag.
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Használat és konfiguráció
Miután a projekt hivatkozik a nuget-csomagra, konfigurálja az EF-t az SQL Serverhez az alábbiak szerint:
public class MyContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("<CONNECTION STRING>");
}
}
Ha az EF-t függőséginjektálással (pl. ASP.NET) használja, használja a következőket:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MyContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MyContext")));
Az EF SQL Server-szolgáltató a Microsoft.Data.SqlClientet használja mögöttes ADO.NET szolgáltatóként. Az SqlClient által elfogadott kapcsolati sztringekről ezen a lapon talál további információt.
Kompatibilitási szint
Igény szerint konfigurálhatja az EF-t az adatbázis kompatibilitási szintjével; a magasabb kompatibilitási szintek lehetővé teszik az újabb funkciókat, és az EF ennek megfelelően konfigurálásával ezeket a funkciókat fogja használni. Ha nem konfigurálja explicit módon a kompatibilitási szintet, a rendszer egy ésszerű alapértelmezett beállítást választ, amely nem feltétlenül használja ki a legújabb funkciókat. Ennek eredményeképpen javasoljuk, hogy explicit módon konfigurálja a kívánt kompatibilitási szintet.
Vegye figyelembe, hogy ez csak a kompatibilitási szint ef saját konfigurációjára vonatkozik – például az általa létrehozott SQL-t érinti –, de nem befolyásolja a tényleges adatbázisban konfigurált kompatibilitási szintet. Előfordulhat, hogy az SQL Server újabb verzióiban üzemeltetett adatbázisok továbbra is alacsonyabb kompatibilitási szinttel vannak konfigurálva, ami miatt nem támogatják a legújabb funkciókat , ezért előfordulhat, hogy az adatbázisban is módosítania kell a kompatibilitási szintet. A kompatibilitási szintekről további információt a dokumentációban talál.
Az EF kompatibilitási szinttel való konfigurálásához használja UseCompatibilityLevel() az alábbiakat:
optionsBuilder.UseSqlServer("<CONNECTION STRING>", o => o.UseCompatibilityLevel(170));
Kapcsolat rugalmassága
Az EF a sikertelen adatbázis-parancsok automatikus újrapróbálkozási funkcióját tartalmazza; további információkért tekintse meg a dokumentációt. Amikor UseAzureSql és UseAzureSynapse használatban van, a hozzáférés rugalmassága automatikusan beállításra kerül az adott adatbázisoknak megfelelő beállításokkal. Különben, amikor használja UseSqlServer, konfigurálja a szolgáltatót EnableRetryOnFailure úgy, ahogy a hálózati kapcsolat rugalmassági dokumentációja leírja.
Bizonyos esetekben UseSqlServer olyan kódban kerülhet meghívásra, amit nem áll módunkban szabályozni. Az EF 9-től kezdődően az ilyen helyzetekben a kapcsolat rugalmasságának engedélyezéséhez hívja ConfigureSqlEngine(c => c.EnableRetryOnFailureByDefault()) meg előre (ez nem szükséges a következővel UseAzureSql : és UseAzureSynapse).
Jegyzetek és figyelmeztetések
- A Microsoft.Data.SqlClient csomag gyakrabban szállít, mint az EF Core-szolgáltató. Ha ki szeretné használni az új funkciókat és hibajavításokat, hozzáadhat egy közvetlen csomaghivatkozást a Microsoft.Data.SqlClient legújabb verziójához.
- Az EF SQL Server-szolgáltató a Microsoft.Data.SqlClientet használja, és nem a régebbi System.Data.Clientt; Ha a projekt közvetlen függőséget alkalmaz az SqlClienthez, győződjön meg arról, hogy a Microsoft.Data.SqlClient csomagra hivatkozik. A Microsoft.Data.SqlClient és a System.Data.SqlClient közötti különbségekről ebben a blogbejegyzésben talál további információt.
Támogatott adatbázismotorok
- Microsoft SQL Server (2019-től)
- Azure SQL Database
- Azure Synapse Analytics