我有一个被映射到数据库表中的类。假设这是我的班级:
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>();
}
从我的角度来看,这不是最好的解决方案,但它有效...