Aracılığıyla paylaş


Entity Framework Core SQL Server sağlayıcısına özgü sütun özellikleri

Bu sayfada SQL Server sağlayıcısına özgü sütun yapılandırma seçenekleri ayrıntılı olarak açıklanıyor.

Unicode ve UTF-8

** SQL Server 2019, UTF-8 verilerini ve char sütunlarında depolamak amacıyla özel UTF-8 karşılaştırmalarıyla yapılandırarak UTF-8 desteği sunmuştur. UTF-8 sütunlarını EF ile birlikte kullanmak için char yalnızca sütunun türünü veya varcharolarak yapılandırabilir, utf-8 harmanlamasını (ile _UTF8biten) ve sütunun Unicode olması gerektiğini belirtebilirsiniz:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>()
        .Property(b => b.Name)
        .HasColumnType("varchar(max)")
        .UseCollation("LATIN1_GENERAL_100_CI_AS_SC_UTF8")
        .IsUnicode();
}

Seyrek sütunlar

Seyrek sütunlar, null değerler için iyileştirilmiş bir depolama alanı olan sıradan sütunlardır ve null olmayan değerleri almak için daha fazla ek yük karşılığında null değerler için alan gereksinimlerini azaltır.

Örnek olarak, tablo başına hiyerarşi (TPH) stratejisiyle eşleştirilmiş bir tür hiyerarşisini düşünün. TPH'de, hiyerarşideki tüm türleri tutmak için tek bir veritabanı tablosu kullanılır; Bu, tablonun hiyerarşinin tamamında her bir özellik için sütunlar içermesi gerektiği ve nadir türlere ait sütunlar için çoğu satırın bu sütun için null değer içermesi gerektiği anlamına gelir. Bu gibi durumlarda, alan gereksinimlerini azaltmak için sütunu seyrek olarak yapılandırmak mantıklı olabilir. Bir sütunun seyrek yapılıp yapılmayacağı kararı kullanıcı tarafından verilmelidir ve tablodaki gerçek verilerin beklentilerine bağlıdır.

Fluent API aracılığıyla bir sütun seyrek hale getirilebilir:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<RareBlog>()
        .Property(b => b.RareProperty)
        .IsSparse();
}

Seyrek sütunlar hakkında daha fazla bilgi için bkz. SQL Server belgeleri.