C# 当子类实体时,EntityFramework需要迁移
我有一个实体:C# 当子类实体时,EntityFramework需要迁移,c#,entity-framework,asp.net-mvc-4,C#,Entity Framework,Asp.net Mvc 4,我有一个实体: namespace Project.Models.DbModels { public class MyEntity { public long Id { get; set; } public long Number { get; set; } public SomeOtherEntity otherEntity{ get; set; } } } 我将其子类化,以添加其他实体(作为视图模型)的列表,并将其作为
namespace Project.Models.DbModels
{
public class MyEntity
{
public long Id { get; set; }
public long Number { get; set; }
public SomeOtherEntity otherEntity{ get; set; }
}
}
我将其子类化,以添加其他实体(作为视图模型)的列表,并将其作为下拉列表在视图中使用
namespace Project.Models.ViewModels
{
public class MyNewEntity : MyEntity
{
public List<SomeOtherEntity> otherEntities { get; set; }
}
}
namespace Project.Models.ViewModels
{
公共类MyNewEntity:MyEntity
{
公共列表其他实体{get;set;}
}
}
数据库上下文是:
namespace DskVault.Models.DbModels
{
public class MyDbContext : DbContext
{
public MyDbContext()
: base("DefaultConnection")
{
}
public DbSet<MyEntity> MyEntities { get; set; }
}
}
名称空间DskVault.Models.DbModels
{
公共类MyDbContext:DbContext
{
公共MyDbContext()
:base(“默认连接”)
{
}
公共DbSet myenties{get;set;}
}
}
请注意,MyNewEntity不在上下文中
问题是,当我执行添加迁移时,框架将添加列绑定到引用MyEntity中的视图模型(MyNewEntity)和鉴别器列的其他实体。
我怎样才能克服这个问题。我不希望驱动类(MyNewEntity)由EF管理,数据库也会相应更新。对实体进行子分类将创建一个新的实体类,该实体类将由EF管理。所以不要使用子类来创建视图模型,而是使用map
子分类通常是一种不合适的技术,因为您通常希望视图模型包含的字段比实体少。从Colins point automapper开始可以节省大量工作-