Funkce sloupců specifické pro zprostředkovatele SQL Serveru Entity Framework Core

Tato stránka podrobně popisuje možnosti konfigurace sloupce, které jsou specifické pro poskytovatele SQL Serveru.

Unicode a UTF-8

SQL Server 2019 zavedl podporu UTF-8 , která umožňuje ukládání dat UTF-8 do char sloupců a varchar jejich konfigurací pomocí speciálních kolací UTF-8. EF Core 7.0 zavedla úplnou podporu pro mapování na sloupce UTF-8 a je možné je použít i v předchozích verzích EF s některými dalšími kroky.

EF Core 7.0 obsahuje prvotřídní podporu sloupců UTF-8. Pokud je chcete nakonfigurovat, jednoduše nakonfigurujte typ sloupce na char nebo varcharzadejte kolaci UTF-8 (končící _UTF8na) a určete, že sloupec by měl být 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();
}

Řídké sloupce

Řídké sloupce jsou běžné sloupce, které mají optimalizované úložiště pro hodnoty null, což snižuje požadavky na místo pro hodnoty null za cenu větší režie na načtení nenulových hodnot.

Představte si například hierarchii typu mapovanou prostřednictvím strategie TPH (table-per-hierarchy). V TPH se jednoúčelová tabulka databáze používá k uložení všech typů v hierarchii; to znamená, že tabulka musí obsahovat sloupce pro každou a každou vlastnost v celé hierarchii a pro sloupce patřící do vzácných typů bude většina řádků obsahovat hodnotu null pro tento sloupec. V těchto případech může být vhodné nakonfigurovat sloupec jako zhuštěný, aby se snížily požadavky na místo. Rozhodnutí, jestli má uživatel provést řídký sloupec, a závisí na očekávání skutečných dat v tabulce.

Sloupec může být řídký prostřednictvím rozhraní Fluent API:

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

Další informace o řídkých sloupcích najdete v dokumentaci k SQL Serveru.