Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento poskytovatel databáze umožňuje použití Entity Framework Core s Microsoft SQL Serverem (včetně Azure SQL a Azure Synapse Analytics). Poskytovatel je spravován jako součást projektu Entity Framework Core .
Install
Nainstalujte balíček NuGet Microsoft.EntityFrameworkCore.SqlServer.
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Použití a konfigurace
Jakmile projekt odkazuje na balíček NuGet, nakonfigurujte ef pro SQL Server následujícím způsobem:
public class MyContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("<CONNECTION STRING>");
}
}
Při použití EF s injektáží závislostí (např. ASP.NET) použijte následující:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MyContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MyContext")));
Compatibility level
Volitelně můžete ef nakonfigurovat s úrovní kompatibility databáze; vyšší úrovně kompatibility umožňují novější funkce a konfigurace ef odpovídajícím způsobem tyto funkce využívá. Pokud explicitně nenakonfigurujete úroveň kompatibility, zvolí se rozumné výchozí nastavení, které nemusí využívat nejnovější funkce. Proto doporučujeme explicitně nakonfigurovat úroveň kompatibility, kterou chcete mít.
Všimněte si, že se týká pouze vlastní konfigurace úrovně kompatibility EF , která ovlivňuje například SQL, který generuje, ale nemá vliv na úroveň kompatibility nakonfigurovanou ve vaší skutečné databázi. Databáze hostované v novějších verzích SQL Serveru můžou být stále nakonfigurované s nižšími úrovněmi kompatibility, což způsobuje, že nepodporují nejnovější funkce – takže možná budete muset změnit i úroveň kompatibility v databázi. Další informace o úrovních kompatibility najdete v dokumentaci.
Pokud chcete nakonfigurovat ef s úrovní kompatibility, použijte následující příkaz UseCompatibilityLevel() :
optionsBuilder.UseSqlServer("<CONNECTION STRING>", o => o.UseCompatibilityLevel());
Connection resiliency
EF obsahuje funkce pro automatické opakování neúspěšných databázových příkazů; Další informace najdete v dokumentaci. Při použití UseAzureSql a UseAzureSynapseje odolnost připojení automaticky nastavena s odpovídajícími nastaveními specifickými pro tyto databáze. Jinak při použití UseSqlServernakonfigurujte poskytovatele tak EnableRetryOnFailure , jak je znázorněno v dokumentaci k odolnosti připojení.
V některých případech může být volána v kódu, UseSqlServer který nemůžete ovládat. Počínaje EF 9 za účelem zajištění odolnosti připojení v takových scénářích předem volejte ConfigureSqlEngine(c => c.EnableRetryOnFailureByDefault()) (to není nutné s UseAzureSql a UseAzureSynapse).
Poznámky a upozornění
- Balíček Microsoft.Data.SqlClient se dodává častěji než poskytovatel EF Core. Pokud chcete využívat nové funkce a opravy chyb, můžete přidat přímý odkaz na balíček na nejnovější verzi Microsoft.Data.SqlClient.
- Zprostředkovatel EF SQL Serveru používá Microsoft.Data.SqlClient, nikoli starší System.Data.Client; Pokud váš projekt využívá přímou závislost na SqlClient, ujistěte se, že odkazuje na balíček Microsoft.Data.SqlClient. Další informace o rozdílech mezi Microsoft.Data.SqlClient a System.Data.SqlClient najdete v tomto blogovém příspěvku.
Podporované databázové stroje
- Microsoft SQL Server (2019 a novější)
- Azure SQL Database
- Azure Synapse Analytics