Aracılığıyla paylaş


Microsoft SQL Server EF Core Veritabanı Sağlayıcısı

Bu veritabanı sağlayıcısı, Entity Framework Core'un Microsoft SQL Server (Azure SQL ve Azure Synapse Analytics dahil) ile kullanılmasını sağlar. Sağlayıcı, Entity Framework Core Project kapsamında tutulur.

Install

Microsoft.EntityFrameworkCore.SqlServer NuGet paketini yükleyin.

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

Kullanım ve yapılandırma

Projeniz nuget paketine başvurdıktan sonra SQL Server için EF'yi aşağıdaki gibi yapılandırın:

public class MyContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("<CONNECTION STRING>");
    }
}

EF'yi bağımlılık eklemeyle (örneğin ASP.NET) kullanırken aşağıdakileri kullanın:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MyContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("MyContext")));

Compatibility level

İsteğe bağlı olarak EF'yi veritabanınızın uyumluluk düzeyiyle yapılandırabilirsiniz; daha yüksek uyumluluk düzeyleri daha yeni özelliklere olanak sağlar ve EF'yi uygun şekilde yapılandırmak, bu özellikleri kullanmasını sağlar. Uyumluluk düzeyini açıkça yapılandırmazsanız, en yeni özelliklerden yararlanmayacak makul bir varsayılan değer seçilir. Sonuç olarak, sahip olmak istediğiniz uyumluluk düzeyini açıkça yapılandırmanız önerilir.

Bunun yalnızca EF'nin kendi uyumluluk düzeyi yapılandırmasını (örneğin oluşturduğu SQL'i) kapsadığını ancak gerçek veritabanınızda yapılandırılan uyumluluk düzeyini etkilemediğini unutmayın. SQL Server'ın daha yeni sürümlerinde barındırılan veritabanları hala daha düşük uyumluluk düzeyleriyle yapılandırılabilir ve bu da en son özellikleri desteklememelerine neden olabilir; bu nedenle veritabanınızdaki uyumluluk düzeyini de değiştirmeniz gerekebilir. Uyumluluk düzeyleri hakkında daha fazla bilgi için belgelere bakın.

EF'yi uyumluluk düzeyiyle yapılandırmak için aşağıdaki gibi kullanın UseCompatibilityLevel() :

optionsBuilder.UseSqlServer("<CONNECTION STRING>", o => o.UseCompatibilityLevel());

Connection resiliency

EF, başarısız veritabanı komutlarını otomatik olarak yeniden denemeye yönelik işlevler içerir; daha fazla bilgi için belgelere bakın. ve UseAzureSynapsekullanılırkenUseAzureSql, bağlantı dayanıklılığı bu veritabanlarına özgü uygun ayarlarla otomatik olarak ayarlanır. Aksi takdirde, kullanırken UseSqlServersağlayıcıyı EnableRetryOnFailure ile bağlantı dayanıklılığı belgelerinde gösterildiği gibi yapılandırın.

Bazı durumlarda, UseSqlServer denetleyemeyeceğiniz kodda çağrılabilir. EF 9'dan başlayarak, bu tür senaryolarda bağlantı dayanıklılığını etkinleştirmek için önceden arayın ConfigureSqlEngine(c => c.EnableRetryOnFailureByDefault()) (ve UseAzureSynapseile UseAzureSql gerekli değildir).

Notlar ve uyarılar

  • Microsoft.Data.SqlClient paketi EF Core sağlayıcısından daha sık gönderimler sunar. Yeni özelliklerden ve hata düzeltmelerinden yararlanmak isterseniz, Microsoft.Data.SqlClient'ın en son sürümüne doğrudan paket başvurusu ekleyebilirsiniz.
  • EF SQL Server sağlayıcısı, eski System.Data.Client'ı değil Microsoft.Data.SqlClient'ı kullanır; projeniz SqlClient'a doğrudan bağımlılık alıyorsa Microsoft.Data.SqlClient paketine başvurdığından emin olun. Microsoft.Data.SqlClient ile System.Data.SqlClient arasındaki farklar hakkında daha fazla bilgi için bu blog gönderisine bakın.

Desteklenen veritabanı altyapıları

  • Microsoft SQL Server (2019 ve üzeri)
  • Azure SQL Veritabanı
  • Azure Synapse Analytics