EF 6 Codefirst-使用Fluent API为基类中定义的属性设置默认值

Abi*_*i P 2 entity-framework entity-framework-6 ef-fluent-api

我有一个具有审计属性的基类,例如

public abstract class BaseModel
{
    [Column(Order = 1)] 
    public long Id { get; set; }
    public long CreatedBy { get; set; }
    public DateTime CreatedDate { get; set; }
    public long ModifiedBy { get; set; }
    public DateTime ModifiedDate { get; set; }
    public bool IsActive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我所有的poco课程都来自于该课程。

我试图将默认值设置为IsActive属性。我不热衷于使用批注,因此如果我能使用流利的API来解决这个问题,我会一直徘徊。

我试过了,但是没有用。好像它创建了一个名为BaseModel的新表

modelBuilder.Entity<BaseModel>()
    .Property(p => p.IsActive)
    .HasColumnAnnotation("DefaultValue", true);
Run Code Online (Sandbox Code Playgroud)

有人可以在这里建议一种方法吗?

Mar*_*als 5

没有办法做到这一点。它不能使用Entity Framework设置默认值。相反,您可以使用构造函数

public abstract class BaseModel
{
    protected BaseModel()
    {
        IsActive = true;
    }
}
Run Code Online (Sandbox Code Playgroud)