Colonnes calculéesComputed Columns

Note

La configuration indiquée dans cette section s’applique aux bases de données relationnelles en général.The configuration in this section is applicable to relational databases in general. Les méthodes d’extension indiquées ici sont disponibles quand vous installez un fournisseur de base de données relationnelle (en raison du package partagé Microsoft.EntityFrameworkCore.Relational).The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

Une colonne calculée est une colonne dont la valeur est calculée dans la base de données.A computed column is a column whose value is calculated in the database. Une colonne calculée peut utiliser d’autres colonnes dans la table pour calculer sa valeur.A computed column can use other columns in the table to calculate its value.

ConventionsConventions

Par convention, les colonnes calculées ne sont pas créés dans le modèle.By convention, computed columns are not created in the model.

Annotations de donnéesData Annotations

Les colonnes calculées n’ont pas peuvent être configurés avec des Annotations de données.Computed columns can not be configured with Data Annotations.

API FluentFluent API

Vous pouvez utiliser l’API Fluent pour spécifier qu’une propriété doit correspondre à une colonne calculée.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; }
}