Colunas computadasComputed Columns

Observação

A configuração nesta seção é aplicável a bancos de dados relacionais em geral.The configuration in this section is applicable to relational databases in general. Os métodos de extensão mostrados aqui estará disponíveis quando você instala um provedor de banco de dados relacional (devido a compartilhado Microsoft.EntityFrameworkCore.Relational pacote).The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

Uma coluna computada é uma coluna cujo valor é calculado no banco de dados.A computed column is a column whose value is calculated in the database. Uma coluna computada pode usar outras colunas na tabela para calcular o valor.A computed column can use other columns in the table to calculate its value.

ConvençõesConventions

Por convenção, as colunas computadas não são criadas no modelo.By convention, computed columns are not created in the model.

Anotações de dadosData Annotations

Colunas computadas não podem ser configuradas com as anotações de dados.Computed columns can not be configured with Data Annotations.

API fluenteFluent API

Você pode usar a API fluente para especificar que uma propriedade deve ser mapeado para uma coluna computada.You can use the Fluent API to specify that a property should map to a computed column.

class MyContext : DbContext
{
    public DbSet<Person> People { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Person>()
            .Property(p => p.DisplayName)
            .HasComputedColumnSql("[LastName] + ', ' + [FirstName]");
    }
}

public class Person
{
    public int PersonId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string DisplayName { get; set; }
}