我试图弄清楚如何处理多种类型的继承。我有一个现有的 Code First / EF / MVC 项目,它在生产环境中具有实时数据。系统使用一种称为“文档”的类型,可以在该类型上执行许多功能,并且有许多关联的表可以链接到 DocumentID。
目前有一种更加差异化的文档,即采购订单,它实现了一些更具体的属性,例如引用产品、数量和单价的“OrderLines”集合。还有一些特定于采购订单的其他字段。除了具有“OrderLines”与基本文档类型不同之外,采购订单是供应方文档,因此,它的第三方是“供应商”。将来可能还有其他供应方文件也将供应商作为第三方。
我现在准备实施一种新的文档类型,即需求方,这意味着它将有一个称为客户的第三方。它还有一个 OrderLines 集合。
我的系统目前设置为 TPH,因此该表称为“文档”,并且有一个鉴别器列表示里面的文档是采购订单。
如何添加新类型并使用继承来实现 OrderLines 集合和 CustomerID / Customer 链接?看来 c# 不能做多重继承,所以下面的问题是不可能的:
Document -> OrderLinesDocument -> PurchaseOrder
文档 -> OrderLinesDocument -> 发票
Document -> VendorDocument -> PurchaseOrder
单据 -> 客户单据 -> 发票
中产阶级将在哪里实现可能对许多文档但不是所有文档共有的字段?
有没有办法使用接口来实现这一点,并且仍然让 EF 正确地找出表格?