EntityFramework需要在子类实体时进行迁移

时间:2014-01-21 12:39:43

标签: 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; }
    }
}

我将其子类化为添加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)和discriminator列的SomeOtherEntity。 我怎么能克服这一点。我不希望驱动类(MyNewEntity)由EF和数据库管理,以便更新。

1 个答案:

答案 0 :(得分:1)

对实体进行子类化会创建一个新的实体类 - 它将由EF管理。所以不要创建视图模型的子类,而是映射。

子类化通常是一种不合适的技术,因为您经常希望视图模型包含的字段少于实体。