Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Med den här databasprovidern kan Entity Framework Core användas med Microsoft SQL Server (inklusive Azure SQL och Azure Synapse Analytics). Providern underhålls som en del av Entity Framework Core Project.
Install
Installera NuGet-paketet Microsoft.EntityFrameworkCore.SqlServer .
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Användning och konfiguration
När projektet refererar till nuget-paketet konfigurerar du EF för SQL Server på följande sätt:
public class MyContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("<CONNECTION STRING>");
}
}
När du använder EF med beroendeinmatning (t.ex. ASP.NET) använder du följande:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MyContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MyContext")));
EF SQL Server-providern använder Microsoft.Data.SqlClient som underliggande ADO.NET provider. Mer information om anslutningssträngarna som godkänns av SqlClient finns på den här sidan.
Kompatibilitetsnivå
Du kan också konfigurera EF med databasens kompatibilitetsnivå. Högre kompatibilitetsnivåer möjliggör nyare funktioner och om du konfigurerar EF används dessa funktioner. Om du inte uttryckligen konfigurerar en kompatibilitetsnivå väljs en rimlig standard som kanske inte utnyttjar de senaste funktionerna. Därför rekommenderar vi att du uttryckligen konfigurerar den kompatibilitetsnivå som du vill ha.
Observera att detta endast omfattar EF:s egen konfiguration av kompatibilitetsnivån – vilket påverkar t.ex. den SQL som genereras – men påverkar inte den kompatibilitetsnivå som konfigurerats i din faktiska databas. Databaser som finns på nyare versioner av SQL Server kan fortfarande konfigureras med lägre kompatibilitetsnivåer, vilket gör att de inte stöder de senaste funktionerna , så du kan också behöva ändra kompatibilitetsnivån i databasen. Mer information om kompatibilitetsnivåer finns i dokumentationen.
Om du vill konfigurera EF med en kompatibilitetsnivå använder du UseCompatibilityLevel() följande:
optionsBuilder.UseSqlServer("<CONNECTION STRING>", o => o.UseCompatibilityLevel(170));
Anslutningsmotståndskraft
EF innehåller funktioner för automatiskt återförsök av misslyckade databaskommandon. Mer information finns i dokumentationen. När du använder UseAzureSql och UseAzureSynapsekonfigureras anslutningsåterhämtning automatiskt med lämpliga inställningar som är specifika för dessa databaser. När du använder UseSqlServerkonfigurerar du annars providern med EnableRetryOnFailure enligt dokumentationen för anslutningsåterhämtning.
I vissa fall UseSqlServer kan anropas i kod som du inte kan styra. Från EF 9 och framåt, för att aktivera anslutningsresiliens i sådana scenarier, anropa ConfigureSqlEngine(c => c.EnableRetryOnFailureByDefault()) i förväg (detta är inte nödvändigt med UseAzureSql och UseAzureSynapse).
Anteckningar och varningar
- Microsoft.Data.SqlClient-paketet levereras oftare än EF Core-providern. Om du vill dra nytta av nya funktioner och felkorrigeringar kan du lägga till en direkt paketreferens till den senaste versionen av Microsoft.Data.SqlClient.
- EF SQL Server-providern använder Microsoft.Data.SqlClient och inte den äldre System.Data.Client; Om projektet är direkt beroende av SqlClient kontrollerar du att det refererar till paketet Microsoft.Data.SqlClient. Mer information om skillnaderna mellan Microsoft.Data.SqlClient och System.Data.SqlClient finns i det här blogginlägget.
Databasmotorer som stöds
- Microsoft SQL Server (2019 och senare)
- Azure SQL Database
- Azure Synapse Analytics