每个具体类型的表,表格作为上下文属性

时间:2016-10-25 09:14:33

标签: c# entity-framework entity-framework-6

我正在尝试为我的所有表创建一个基类,以确保我的所有数据都有一些像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; }
}

1 个答案:

答案 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");
        });
    }
}