2014-01-21 57 views
0

我有一個實體:的EntityFramework需要遷移時子類實體

namespace Project.Models.DbModels 
{ 
    public class MyEntity 
    { 
     public long Id { get; set; } 
     public long Number { get; set; } 
     public SomeOtherEntity otherEntity{ get; set; } 
    } 
} 

我子類它添加SomeOtherEntity的列表(作爲視圖模型)中的視圖,作爲下拉菜單來使用它。

namespace Project.Models.ViewModels 
    { 
     public class MyNewEntity : MyEntity 
     { 
      public List<SomeOtherEntity> otherEntities { get; set; } 
     } 
    } 

和DB背景是:

namespace DskVault.Models.DbModels 
{ 
    public class MyDbContext : DbContext 
    { 
     public MyDbContext() 
      : base("DefaultConnection") 
     { 
     } 

     public DbSet<MyEntity> MyEntities { get; set; } 

    } 
} 

注意MyNewEntity不在範圍內。

問題是,當我執行Add-Migration時,框架將列添加到引用MyEntity中的視圖模型(MyNewEntity)和鑑別器列的SomeOtherEntity中。 我該如何克服這一點。我不希望按EF來管理驅動類(MyNewEntity)和數據庫。

回答

1

對實體進行子分類會創建一個新的實體類 - 它將由EF進行管理。所以不要創建視圖模型的子類,而是映射。

子分類通常是一種不合適的技術,因爲您經常希望您的視圖模型包含的字段少於您的實體。

+1

繼續從科林斯點automapper將節省大量的工作 - https://github.com/AutoMapper/AutoMapper/wiki/Getting-started – HockeyJ