.Net实体框架代码第一模型设计

时间:2017-05-04 20:51:29

标签: .net entity-framework model code-first

我有多个父表与一个子表有一对多的关系。显然,三个公共虚拟(Quote,PurchaseOrder,Invoice)在下面的示例中不起作用。这样做的正确模式是什么?也许是带有鉴别器的继承模式?在此先感谢!

public class UserActivityLog
{
    public int UserActivityLogId { get; set; }

    public int ParentTableEnum { get; set; }  //1-Quote, 2-PurchaseOrder, 3-Invoice

    public int ParentProcessId { get; set; }

    [ForeignKey("ParentProcessId")]
    public virtual Quote Quote { get; set; }

    [ForeignKey("ParentProcessId")]
    public virtual PurchaseOrder PurchaseOrder { get; set; }

    [ForeignKey("ParentProcessId")]
    public virtual Invoice Invoice { get; set; }
}

public class Quote
{
    public int QuoteId { get; set; }

    public virtual ICollection<UserActivityLog> UserActivityLogs { get; set; }
}

public class PurchaseOrder
{
    public int PurchaseOrderId { get; set; }

    public virtual ICollection<UserActivityLog> UserActivityLogs { get; set; }
}

public class Invoice
{
    public int InvoiceId { get; set; }

    public virtual ICollection<UserActivityLog> UserActivityLogs { get; set; }
}

问题示例:

UserActivityLog
UserActivityLogId ParentTableEnum ParentProcessId
1                 1               1
2                 2               1
3                 3               1

Quote
QuoteId
1

PurchaseOrder
PurchaseOrderId
1

Invoice
InvoiceId
1

0 个答案:

没有答案