警告
This documentation is for EF7 onwards. For EF6.x and earlier release see http://msdn.com/data/ef. 本文档是基于EF7版本.对于EF6.x及更早的版本请参见 http://msdn.com/data/ef.
注解
This article uses EF 7.0.0-rc1 which is the latest pre-release available on NuGet.org. You can find nightly builds of the EF7 code base hosted on https://www.myget.org/F/aspnetvnext/ but we do not maintain up-to-date documentation for nightly builds.
注解
The configuration in this section is applicable to relational databases in general. The extension methods shown here will become available when you install a relational database provider (due to the shared EntityFramework.Relational package).
Default Values¶
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 API¶
You can use the Fluent API to specify the default value for a property.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; }
}
|
You can also specify a SQL fragment that is used to calculate the default value.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; }
}
|