3

我正在尝试映射父/子集合场景,其中父子都使用 TPH 继承。我尝试了很多场景——没有一个奏效。对我来说,关键是每个父母在集合中只能有一种类型的孩子。下面是我想要实现的一个人为的例子:

public abstract class Order
{
    public int ID { get; set; }
    public decimal Total { get; set; }
}

public class SalesOrder : Order
{
    public bool Rush { get; set; }
    public virtual ICollection<SalesOrderLine> OrderLines { get; set; }
}

public class PurchaseOrder : Order
{
    public string Contact{ get; set; }
    public virtual ICollection<PurchaseOrderLine> OrderLines { get; set; }
}

public abstract class OrderLine
{
    public int ID { get; set; }
    public int OrderID { get; set; }
    public string Sku { get; set; }
    public int Quantity { get; set; }
    public decimal Amount { get; set; }
}

public class SalesOrderLine : OrderLine
{
    public decimal Discount { get; set; }
    public virtual SalesOrder Order { get; set; }
}

public class PurchaseOrderLine : OrderLine
{
public int VendorID { get; set; }
    public virtual PurchaseOrder Order { get; set; }
}

使用 TPH 将 SalesOrder 和 PurchaseOrder 类使用映射到 Order 表。SalesOrderLine 和 PurchaseOrderLine 使用 TPH 映射到 OrderLine 表。

EF 是否支持这一点,如果支持,我该如何实现?

4

0 回答 0