Compartilhar via


Recursos de coluna específicos para o provedor do SQL Server do Entity Framework Core

Esta página detalha as opções de configuração de coluna específicas para o provedor do SQL Server.

Unicode e UTF-8

O SQL Server 2019 introduziu o suporte a UTF-8, que permite armazenar os dados UTF-8 nas colunas char e varchar configurando-os com intercalações UTF-8 especiais. Você pode usar colunas UTF-8 com EF simplesmente configurando o tipo da coluna ou charvarcharespecificando uma ordenação UTF-8 (terminando com _UTF8) e especificando que a coluna deve ser 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();
}

Colunas esparsas

Colunas esparsas são colunas comuns que têm um armazenamento otimizado para valores nulos, reduzindo os requisitos de espaço para valores nulos ao custo de mais sobrecarga para recuperar valores não nulos.

Por exemplo, considere uma hierarquia de tipos mapeada por meio da estratégia TPH (tabela por hierarquia). No TPH, uma única tabela de banco de dados é usada para manter todos os tipos em uma hierarquia; isso significa que a tabela deve conter colunas para cada propriedade em toda a hierarquia e, para colunas pertencentes a tipos raros, a maioria das linhas conterá um valor nulo para essa coluna. Nesses casos, pode fazer sentido configurar a coluna como esparsa, a fim de reduzir os requisitos de espaço. A decisão de tornar uma coluna esparsa deve ser tomada pelo usuário e depende das expectativas de dados reais na tabela.

Uma coluna pode ser tornada esparsa por meio da Fluent API.

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

Para obter mais informações sobre colunas esparsas, consulte os documentos do SQL Server.