EF每表自动类型映射策略
本文关键字:类型 映射 策略 EF | 更新日期: 2023-09-27 18:26:24
我们有一个名为base的基类,以及一些名为Derived1和Derived2的继承类。要将类放置在单独的选项卡中,我们可以使用属性或fluentAPI,但在这种情况下,我们在定义新类时一直在写这篇文章,但新的继承类很常见。
最后,所有与基地继任者的工作都必须通过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(")]atribute并定义新的DbSet<>对于OneContext中的每一个新继任者?
没有办法将EF配置为在TPH上自动使用TPT。然而,实现TPT的唯一要求是为派生实体类显式设置表名(这可以像在类定义上使用TableAttribute
一样简单)。为派生实体类创建DbSet<T>
属性是可选的。