이 데이터베이스 공급자를 사용하면 Entity Framework Core를 Microsoft SQL Server(Azure SQL 및 Azure Synapse Analytics 포함)와 함께 사용할 수 있습니다. 공급자는 Entity Framework Core 프로젝트일부로 유지 관리됩니다.
Install
Microsoft.EntityFrameworkCore.SqlServer NuGet 패키지
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
사용량 및 구성
프로젝트에서 nuget 패키지를 참조하면 다음과 같이 SQL Server용 EF를 구성합니다.
public class MyContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("<CONNECTION STRING>");
}
}
종속성 주입(예: ASP.NET)과 함께 EF를 사용하는 경우 다음을 사용합니다.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MyContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MyContext")));
Compatibility level
필요에 따라 데이터베이스의 호환성 수준으로 EF를 구성할 수 있습니다. 호환성 수준이 높을수록 최신 기능을 사용할 수 있으며, 그에 따라 EF를 구성하면 해당 기능을 사용할 수 있습니다. 호환성 수준을 명시적으로 구성하지 않으면 최신 기능을 활용하지 못할 수 있는 적절한 기본값이 선택됩니다. 따라서 원하는 호환성 수준을 명시적으로 구성하는 것이 좋습니다.
이는 EF가 생성하는 SQL과 같은 호환성 수준에 대한 EF 자체 구성에만 적용되지만 실제 데이터베이스에 구성된 호환성 수준에는 영향을 주지 않습니다. 최신 버전의 SQL Server에서 호스트되는 데이터베이스는 여전히 낮은 호환성 수준으로 구성되어 최신 기능을 지원하지 않을 수 있으므로 데이터베이스의 호환성 수준도 변경해야 할 수 있습니다. 호환성 수준에 대한 자세한 내용은 설명서를 참조하세요.
호환성 수준으로 EF를 구성하려면 다음과 같이 사용합니다 UseCompatibilityLevel() .
optionsBuilder.UseSqlServer("<CONNECTION STRING>", o => o.UseCompatibilityLevel());
Connection resiliency
EF에는 실패한 데이터베이스 명령을 자동으로 다시 시도하는 기능이 포함되어 있습니다. 자세한 내용은 설명서를 참조하세요. 사용 및 UseAzureSynapse사용 UseAzureSql 시 연결 복원력은 해당 데이터베이스에 특정한 적절한 설정으로 자동으로 설정됩니다. 그렇지 않으면 사용할 UseSqlServer때 연결 복원력 설명서와 EnableRetryOnFailure 같이 공급자를 구성합니다.
경우에 따라 UseSqlServer 제어할 수 없는 코드에서 호출될 수 있습니다. EF 9부터 이러한 시나리오에서 연결 복원력을 사용하도록 설정하려면 미리 호출 ConfigureSqlEngine(c => c.EnableRetryOnFailureByDefault()) 합니다(이 경우 및 필요 없음 UseAzureSqlUseAzureSynapse).
참고 사항 및 주의 사항
- Microsoft.Data.SqlClient 패키지는 EF Core 공급자보다 더 자주 제공됩니다. 새 기능 및 버그 수정을 활용하려면 최신 버전의 Microsoft.Data.SqlClient에 직접 패키지 참조를 추가할 수 있습니다.
- EF SQL Server 공급자는 이전 System.Data.Client가 아닌 Microsoft.Data.SqlClient를 사용합니다. 프로젝트가 SqlClient에 직접 종속되면 Microsoft.Data.SqlClient 패키지를 참조하는지 확인합니다. Microsoft.Data.SqlClient와 System.Data.SqlClient의 차이점에 대한 자세한 내용은 이 블로그 게시물을 참조하세요.
지원되는 데이터베이스 엔진
- Microsoft SQL Server(2019 이상)
- Azure SQL 데이터베이스
- Azure Synapse Analytics
.NET