既定値Default Values

注意

このセクションの構成は、一般にリレーショナル データベースに適用されます。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).

列の既定値は、新しい行が挿入されていますが、列の値が指定されていない場合に挿入される値です。The default value of a column is the value that will be inserted if a new row is inserted but no value is specified for the column.

規則Conventions

規則では、既定値が構成されていません。By convention, a default value is not configured.

データの注釈Data Annotations

データ注釈を使用して、既定値は設定できません。You can not set a default value using Data Annotations.

Fluent APIFluent API

Fluent API を使用すると、プロパティの既定値を指定します。You can use the Fluent API to specify the default value for a property.

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .Property(b => b.Rating)
            .HasDefaultValue(3);
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
    public int Rating { get; set; }
}

既定値の計算に使用される SQL フラグメントを指定することもできます。You can also specify a SQL fragment that is used to calculate the default value.

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .Property(b => b.Created)
            .HasDefaultValueSql("getdate()");
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
    public DateTime Created { get; set; }
}