2012-09-12 20 views
3

是否從EF 5發行版中刪除了可插入約定,我在預發行版中看到了它?尋找強制ef代碼按約定使用datetime2的方法,所以不需要顯式映射每個實體的每一列。EF 5中的可插入約定?

回答

0

結束創建EntityTypeConfiguration的派生類。

public class CustomEntityTypeConfiguration<T> : EntityTypeConfiguration<T> where T : EntityBase 
{ 
    public TEntityTypeConfiguration() 
    { 
     this.Property(t => t.CreatedDate).HasColumnType("datetime2"); 
    } 
} 

然後每個實體的配置距離這不是EntityTypeConfiguration繼承。

2

遇到了類似的問題。我有一個類似於你的BaseEntity的通用存儲庫。

public abstract class BaseEntity 
{ 
    public int Id { get; set; } 
    public DateTime Created { get; set; } 
    public DateTime Updated { get; set; } 
} 

然後每個實體都是從基地派生的。

public class MyEntity: BaseEntity 
{ 
    public string Name{ get; set; } 
    public int prop1 { get; set; } 
    public int prop2 { get; set; } 
} 

我結束了使用columm屬性像這樣設置BaseEntity的創建和更新性質:

public abstract class BaseEntity 
{ 
    [Key, Column(Order = 0)] 
    public int Id { get; set; } 
    [Column(TypeName = "datetime2")] 
    public DateTime Created { get; set; } 
    [Column(TypeName = "datetime2")] 
    public DateTime Updated { get; set; } 
} 

我看着你的解決方案在(http://dreadjr.blogspot.com/ 2012/09/entity-framework-5-code-first-datetime2.html),它看起來也很好,但它需要爲每個實體都有一個特定的配置類。無論如何,我想我會與你分享這個。

+0

感謝我的讚賞輸入。 – dre