我有多个父表与一个子表有一对多的关系。显然,三个公共虚拟(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