我正在尝试为我的所有表创建一个基类,以确保我的所有数据都有一些像CreateDate / Person等数据。
基本上,我希望我的表继承自基类,但我希望每个表上的数据可分离(每个具体类型的表)。
我发现了一些像这样的教程,但问题是我没有为我的桌子命名任何强烈的属性。
如您所见,在链接中他创建了基类的dbset,并且与具体类没有关系。
public class InheritanceMappingContext : DbContext
{
public DbSet<BillingDetail> BillingDetails { get; set; }
}
这是我的代码:
public abstract class TrackableBase
{
public int Id { get; set; }
public virtual DateTime CreateDate { get; protected set; }
public TrackableBase()
{
CreateDate = DateTime.Now;
}
}
public class User : TrackableBase
{
public string Name { get; set; }
public string Email { get; set; }
}
答案 0 :(得分:1)
您应该为每个类添加一个DbSet类型的属性,并为映射添加OnModelCreating
public class InheritanceMappingContext : DbContext
{
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("Users");
});
}
}