2012-01-21 68 views
0

我的實體類還需要包含邏輯。實體框架方法映射的默認行爲

當遇到有方法的實體時,實體框架代碼優先映射器會做什麼?

它只是忽略並只映射屬性到數據庫?

旁邊的問題: 在實體類中是否有一個很好的實踐邏輯?

回答

1

當EF執行模型發現時,您的實體中的方法將被忽略。您甚至可以添加額外的屬性並將它們標記爲未映射。

public class Foo 
{ 
    public int Id { get; set; } 

    public Bar Bar { get; set; } 

    public string Baz { get; set; } 

    public ValidationResult Validate(ValidationContext context) 
    { 
    } 
} 

public class MyContext : DbContext 
{ 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Foo>().Ignore(f => f.Baz); 

     modelBuilder.Ignore<Bar>(); 
    } 
} 

這裏BarValidationResultValidationContext不會是模型的一部分,並Baz屬性將不被映射到的列。

它在您的實體類中具有邏輯是完全可以的。

0

它只會完全忽略方法,它只會查看屬性。國際海事組織你不應該有實體類的邏輯。如果你想附加邏輯entites使用擴展方法