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每表自动类型映射策略

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