0

我首先使用每种类型的表格设置 ef 代码。请参阅以下结构。这个想法是将继承的类信息存储在自己的表中,同时派生类可以引用父类和也从 BaseClass 派生的子类列表。

public class BaseClass
{
    public long Id {get;set;}
    public string EntityType { get; set; }
}

public class A_Class : BaseClass
{
     public string A_Property {get;set;}
     public BaseClass Parent {get; set;}
     public IList<BaseClass> Children { get; set; }
}

public class B_Class : BaseClass
{
     public string B_Property {get;set;}
     public BaseClass Parent {get; set;}
     public IList<BaseClass> Children { get; set; }
}

知道如何为模型设置 DbContext 吗?

4

1 回答 1

0

要生成 3 个表,您可以使用 API:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<BaseClass>().ToTable("BaseClass");
    modelBuilder.Entity<A_Class>().ToTable("AClass");
    modelBuilder.Entity<B_Class>().ToTable("BClass");

    base.OnModelCreating(modelBuilder);
}

TableAttribute

[Table("BaseClass")]
public class BaseClass
{
    public int Id { get; set; }
    public string EntityType { get; set; }
}

[Table("AClass")]
public class A_Class : BaseClass
{
    public string A_Property { get; set; }
    public BaseClass Parent { get; set; }
    public ICollection<BaseClass> Children { get; set; }
}

[Table("BClass")]
public class B_Class : BaseClass
{
    public string B_Property { get; set; }
    public BaseClass Parent { get; set; }
    public ICollection<BaseClass> Children { get; set; }
}
于 2013-03-10T14:15:44.510 回答