2015-06-19 56 views
1

在基類中定義的屬性 - 設置Codefirst默認值我有一個具有像EF 6使用流利的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; } 
} 

我所有的POCO類從這個類派生審計性質的基類。

我想設置一個默認值爲IsActive屬性。我不喜歡使用註釋,因此如果我可以使用流利的API來處理這個問題,它就會流浪。

我試過這個,但它不起作用。似乎它創建了一個名爲BaseModel的新表格

modelBuilder.Entity<BaseModel>() 
    .Property(p => p.IsActive) 
    .HasColumnAnnotation("DefaultValue", true); 

任何人都可以在這裏建議一種方式嗎?

+0

http://stackoverflow.com/questions/19554050/entity-framework-6-code-first-default-value – jjj

回答

3

沒有辦法做到這一點。它不能用實體框架設置默認值。相反,您可以使用構造函數

public abstract class BaseModel 
{ 
    protected BaseModel() 
    { 
     IsActive = true; 
    } 
}