父母和子女使用TPH继承时的代码优先父/子关系

时间:2012-10-24 22:40:48

标签: entity-framework ef-code-first entity-framework-5

我正在尝试映射父/子集合场景,其中父级和子级都使用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是否支持此功能,如果支持,我该如何实现呢?

0 个答案:

没有答案