既定値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; }
}