計算列Computed Columns

注意

このセクションの構成は、リレーショナル データベース全般に適用されます。The configuration in this section is applicable to relational databases in general. ここに示す拡張方法は、リレーショナル データベース プロバイダーをインストールすると (共有 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).

計算列では、値がデータベースで計算列です。A computed column is a column whose value is calculated in the database. 計算列は、その値を計算するのに、テーブル内の他の列を使用できます。A computed column can use other columns in the table to calculate its value.

規約Conventions

慣例により、モデルの計算列は作成されません。By convention, computed columns are not created in the model.

データの注釈Data Annotations

計算列はデータ注釈で構成されていないことができます。Computed columns can not be configured with Data Annotations.

Fluent APIFluent API

Fluent API を使用して、、プロパティは、計算列にマップする必要がありますを指定することができます。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; }
}