Kolumny obliczaneComputed Columns

Uwaga

Ogólnie rzecz biorąc jest odpowiednie dla relacyjnych baz danych konfiguracji w tej sekcji.The configuration in this section is applicable to relational databases in general. Metody rozszerzenia, pokazane tutaj staną się dostępne po zainstalowaniu dostawcy relacyjnej bazy danych (z powodu udostępnionej Microsoft.EntityFrameworkCore.Relational pakietu).The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

Kolumna obliczana jest kolumna, której wartość jest obliczana w bazie danych.A computed column is a column whose value is calculated in the database. Kolumna obliczana można użyć innych kolumn w tabeli można obliczyć jej wartość.A computed column can use other columns in the table to calculate its value.

KonwencjeConventions

Zgodnie z Konwencją kolumnach obliczanych nie są tworzone w modelu.By convention, computed columns are not created in the model.

Adnotacje danychData Annotations

Nie można skonfigurować przy użyciu adnotacji danych kolumn obliczanych.Computed columns can not be configured with Data Annotations.

Interfejs Fluent APIFluent API

Interfejs Fluent API służy do określenia, czy właściwość powinna być zamapowana z kolumną obliczaną.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; }
}