防止类包含在具有鉴别器属性的生成迁移中



我有一个被映射到数据库表中的类。假设这是我的班级:

public class Customer
{
    public int ID {get;set;}
    public string Name {get;set;}
}

现在,我正在尝试创建一个继承 Customer 并添加一些新字段的子类,例如:

public class CustomerWithAttr : Customer
{
    public decimal Sum {get;set;}
}

出现的问题是,当我现在运行添加迁移时,我得到:

public override void Up()
{
    AddColumn("dbo.Customer", "Sum", c => c.Decimal(precision: 18, scale: 2));
    AddColumn("dbo.Customer", "Discriminator", c => c.String(nullable: false, maxLength: 128));
}

我没有向我的上下文类添加任何内容(如DbSet<CustomerWithAttr>)。我只想使用我的新子类(CustomerWithAttr),而不考虑迁移,并且我不需要数据库表。那么如何告诉实体框架忽略它并且不在迁移中生成不必要的列呢?

这似乎可以解决问题:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Ignore<CustomerWithAttr>();
}

从我的角度来看,这不是最好的解决方案,但它有效...

最新更新