每个具体类型的表,其中表作为上下文属性
本文关键字:上下文 属性 类型 | 更新日期: 2023-09-27 18:14:59
我试图为我所有的表创建一个基类,以确保我有一些数据,如CreateDate/Person等对我所有的数据。
所以基本上,我希望我的表继承自基类,但我希望每个表上的数据是分开的(每个具体类型的表)。
我找到了一些这样的教程,但问题是,我不会有任何强命名的属性为我的表。
weblogs.asp.net如您所见,在链接中,他创建了基类的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; }
}
您应该为每个类添加一个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");
});
}
}