Partilhar via


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

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

Unicode e UTF-8

O SQL Server 2019 introduziu o suporte UTF-8 , que permite armazenar dados UTF-8 em char colunas e varchar configurá-los com agrupamentos UTF-8 especiais. Você pode usar colunas UTF-8 com EF simplesmente configurando o tipo da coluna para char ou varchar, especifique um agrupamento 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.

Como exemplo, considere uma hierarquia de tipo mapeada por meio da estratégia de tabela por hierarquia (TPH). 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. Nestes casos, pode fazer sentido configurar a coluna como esparsa, a fim de reduzir os requisitos de espaço. A decisão de definir uma coluna como dispersa deve ser tomada pelo utilizador e depende das expectativas para os dados reais na tabela.

Uma coluna pode tornar-se esparsa usando a 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.