Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten dostawca bazy danych umożliwia korzystanie z programu Entity Framework Core z programem Microsoft SQL Server (w tym usługami Azure SQL i Azure Synapse Analytics). Dostawca jest utrzymywany w ramach Entity Framework Core Project.
Install
Zainstaluj pakiet NuGet Microsoft.EntityFrameworkCore.SqlServer.
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Użycie i konfiguracja
Gdy projekt odwołuje się do pakietu NuGet, skonfiguruj program EF dla programu SQL Server w następujący sposób:
public class MyContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("<CONNECTION STRING>");
}
}
W przypadku korzystania z programu EF z iniekcją zależności (np. ASP.NET) użyj następujących czynności:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MyContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MyContext")));
Compatibility level
Opcjonalnie możesz skonfigurować program EF z poziomem zgodności bazy danych; Wyższe poziomy zgodności umożliwiają korzystanie z nowszych funkcji i odpowiednio skonfigurowanie programu EF powoduje korzystanie z tych funkcji. Jeśli nie skonfigurujesz jawnie poziomu zgodności, zostanie wybrana rozsądna wartość domyślna, która może nie korzystać z najnowszych funkcji. W związku z tym zaleca się jawne skonfigurowanie poziomu zgodności, który chcesz mieć.
Należy pamiętać, że dotyczy to tylko własnej konfiguracji poziomu zgodności platformy EF — mającego wpływ na generowany przez nią kod SQL — ale nie ma wpływu na poziom zgodności skonfigurowany w rzeczywistej bazie danych. Bazy danych hostowane w nowszych wersjach programu SQL Server mogą być nadal konfigurowane z niższymi poziomami zgodności, co powoduje, że nie obsługują najnowszych funkcji — dlatego może być konieczne zmianę poziomu zgodności w bazie danych. Aby uzyskać więcej informacji na temat poziomów zgodności, zobacz dokumentację.
Aby skonfigurować program EF z poziomem zgodności, użyj następującego polecenia UseCompatibilityLevel() :
optionsBuilder.UseSqlServer("<CONNECTION STRING>", o => o.UseCompatibilityLevel());
Connection resiliency
Program EF obejmuje funkcje automatycznego ponawiania próby niepomyślnych poleceń bazy danych; Aby uzyskać więcej informacji, zobacz dokumentację. W przypadku używania UseAzureSql elementów i UseAzureSynapseodporność połączenia jest automatycznie konfigurowana przy użyciu odpowiednich ustawień specyficznych dla tych baz danych. W przeciwnym razie w przypadku korzystania z programu skonfiguruj dostawcę EnableRetryOnFailure za pomocą UseSqlServerpolecenia , jak pokazano w dokumentacji odporności połączenia.
W niektórych przypadkach może być wywoływana w kodzie, UseSqlServer którego nie można kontrolować. Począwszy od ef 9, aby włączyć odporność połączenia w takich scenariuszach, wywołaj ConfigureSqlEngine(c => c.EnableRetryOnFailureByDefault()) wcześniej (nie jest to konieczne z UseAzureSql i UseAzureSynapse).
Uwagi i zastrzeżenia
- Pakiet Microsoft.Data.SqlClient jest dostarczany częściej niż dostawca EF Core. Jeśli chcesz skorzystać z nowych funkcji i poprawek błędów, możesz dodać bezpośrednie odwołanie do pakietu do najnowszej wersji programu Microsoft.Data.SqlClient.
- Dostawca programu EF SQL Server używa elementu Microsoft.Data.SqlClient, a nie starszego klienta System.Data.Client; Jeśli projekt ma bezpośrednią zależność od programu SqlClient, upewnij się, że odwołuje się do pakietu Microsoft.Data.SqlClient. Aby uzyskać więcej informacji na temat różnic między Microsoft.Data.SqlClient i System.Data.SqlClient, zobacz ten wpis w blogu.
Obsługiwane aparaty baz danych
- Microsoft SQL Server (nowsza wersja 2019)
- Azure SQL Database
- Azure Synapse Analytics