Udostępnij przez


Funkcje kolumn specyficzne dla dostawcy programu Entity Framework Core SQL Server

Ta strona zawiera szczegółowe informacje o opcjach konfiguracji kolumn specyficznych dla dostawcy programu SQL Server.

Unicode i UTF-8

Program SQL Server 2019 wprowadził obsługę UTF-8, która umożliwia przechowywanie danych UTF-8 w kolumnach char i varchar przez skonfigurowanie ich przy użyciu specjalnych sortowań UTF-8. Możesz użyć kolumn UTF-8 w programie EF, konfigurując typ kolumny na char wartość lub varchar, określ sortowanie UTF-8 (kończące się na _UTF8), i określając, że kolumna powinna mieć wartość Unicode:

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();
}

Rzadkie kolumny

Kolumny rozrzedzone to zwykłe kolumny, które mają zoptymalizowane magazynowanie dla wartości null, zmniejszając zapotrzebowanie na miejsce dla wartości null kosztem większego narzutu związanego z pobieraniem wartości innych niż null.

Rozważmy na przykład hierarchię typów mapowaną za pomocą strategii table-per-hierarchy (TPH). W przypadku funkcji TPH jedna tabela bazy danych jest używana do przechowywania wszystkich typów w hierarchii; Oznacza to, że tabela musi zawierać kolumny dla każdej właściwości w całej hierarchii, a w przypadku kolumn należących do rzadkich typów większość wierszy będzie zawierać wartość null dla tej kolumny. W takich przypadkach warto skonfigurować kolumnę jako rozrzedliwą, aby zmniejszyć wymagania dotyczące miejsca. Decyzja o tym, czy kolumna powinna być rzadka, musi być podjęta przez użytkownika i uzależniona jest od oczekiwań dotyczących rzeczywistych danych w tabeli.

Kolumnę można ustawić jako rozrzedzoną za pomocą interfejsu Fluent API.

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

Aby uzyskać więcej informacji na temat rozrzednych kolumn, zobacz dokumentację programu SQL Server.