Berechnete SpaltenComputed Columns

Hinweis

Die Konfiguration in diesem Abschnitt ist im Allgemeinen gilt für relationale Datenbanken.The configuration in this section is applicable to relational databases in general. Die Erweiterungsmethoden, die hier gezeigten werden verfügbar, wenn Sie einen relationale Datenbank-Anbieter installieren (aufgrund der freigegebenen Microsoft.EntityFrameworkCore.Relational Paket).The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

Eine berechnete Spalte ist eine Spalte in der Datenbank, deren Wert berechnet wird.A computed column is a column whose value is calculated in the database. Eine berechnete Spalte kann andere Spalten in der Tabelle verwenden, um seinen Wert zu berechnen.A computed column can use other columns in the table to calculate its value.

KonventionenConventions

Gemäß der Konvention werden berechnete Spalten nicht im Modell erstellt.By convention, computed columns are not created in the model.

DatenanmerkungenData Annotations

Berechnete Spalten können nicht mit Datenanmerkungen konfiguriert werden.Computed columns can not be configured with Data Annotations.

Fluent-APIFluent API

Sie können die Fluent-API verwenden, um anzugeben, dass eine Eigenschaft einer berechneten Spalte zugeordnet werden sollen.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; }
}