我有一个被映射到数据库表的类。让我们说这是我的班级:
public class Customer
{
public int ID {get;set;}
public string Name {get;set;}
}
现在,我正在尝试创建一个继承Customer的子类,并添加一些新字段,如:
public class CustomerWithAttr : Customer
{
public decimal Sum {get;set;}
}
出现的问题是,当我现在运行Add-Migration时,我得到:
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));
}
我没有在Context类中添加任何内容(如DbSet<CustomerWithAttr>
)。我只想使用我的新子类(CustomerWithAttr
)而不管迁移,我不需要数据库表。那么我如何告诉实体框架忽略它并且不在迁移中生成不必要的列?
答案 0 :(得分:0)
这似乎可以解决问题:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Ignore<CustomerWithAttr>();
}
从我的角度来看,这不是最好的解决方案,但它确实有效......