我有几个类,我需要从一个持有Id的普通基类派生.暂时忽略其中的一个,让我们说:
public class MyBase {
[Key]
public int Id { get; set; }
}
public class MyName : MyBase {
public string Name { get; set; }
}
我的上下文(DataContext)如下所示:
public DbSetMyNames { get; set; }
// to avoid having EF make a MyBases table and instead map
// MyBase.Id into MyNames and my other derived classes I do this ...
protected override void OnModelCreating((DbModelBuilder modelBuilder) {
modelBuilder.Entity()
.Property(c => c.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
modelBuilder.Entity()
.Map(m => {
m.MapInheritedProperties();
m.ToTable("MyNames");
});
}
结果DB,当我启用迁移,添加迁移初始和更新数据库是我没有名为MyBase的表,而是我得到MyNames中的Id列
dbo.MyNames
<