EF自动类型每表映射策略

时间:2014-10-14 11:56:08

标签: c# entity-framework

我们有一个名为Base的基类,很少有一个名为Derived1和Derived2的继承类。要将类放在单独的表格中,我们可以使用属性或fluentAPI,但在这种情况下,我们在定义新类时始终编写此内容,但新的继承类经常出现。

最后,所有与base的继承者一起工作必须通过Bols of LolContext。

那么,是否可以自动将EF映射到相应表格中从Base继承的所有类?

public class OneContext : DbContext
{
    public DbSet<Base> Bases { get; set; }

    public OneContext()
        : base("OneDatabase")
    {

    }
}

public class Base
{
    [Key]
    public int Id { get; set; }

    public int prop1 { get; set; }
}

public class Derived1 : Base
{
    public int prop { get; set; }
}

public class Derived2 : Base
{
    public int prop { get; set; }
}

#UPDATE1

我会澄清我的问题。

是否有任何方法将所有'Base'继承的类放在名为tabels(或某种名称或id)的名称中,而不为每个新的后继者指定[Table(“”)]属性并定义新的DbSet&lt;&gt;对于OneContext中的每个新继任者?

1 个答案:

答案 0 :(得分:1)

无法配置EF以自动使用TPT而不是TPH。但是,实现TPT的唯一要求是为派生实体类显式设置表名(这可以像在类定义中使用TableAttribute一样简单)。为派生实体类创建DbSet<T>属性是可选的。