希望你能帮助EF代码第一次单外键多家长
我有3个(和更多的惊喜)表[Customer] [Order]
和[Invoice]
。
所有这些表都有一个ID列[ID - Guid]
。
我有一个表[Notes]
,它是由2列(为简便起见): -
[ID - Guid]
[ParentFKID - Guid]
[Comment - String]
我希望在每个3(和更多的惊喜)“父母创造的[Notes]
集合“实体并配置每个实体以填充[Notes]
表中的集合,其中父表的主键指向[ParentFKID]
列。
因此,基本上[ParentFKID]
列是外键,但是是多个其他表的外键。这是可能的,因为我们正在使用GUID键。
这本质上是[CustomerNotes] [OrderNotes]
和[InvoiceNotes]
还这么我们没有复制表,以避免笔记表永远与外键日益增长的其他替代[Customer_ID] [Order_ID]
和[Invoice_ID]
当然必须有办法用Fluent API映射来迎合这个问题,但是因为我对EF Code First和Fluent API都很陌生,所以我很难看到它。
我不在乎约束条件可能不可用 - 无论如何这都是可取的,而且这种结构看起来是不可能的。这肯定是一种常见的情况。
任何人都可以帮助并提供如何配置模型的实体以启用此方案的示例?
您的解决方案可能是常见的,但是,这并不让任何少又臭又差。我建议你阅读这个https://www.simple-talk.com/sql/database-administration/five-simple--database-design-errors-you-should-avoid/的项目#1和#4。考虑你的笔记表可能增长速度为单个表的3倍......降低所有笔记查找的性能。此外,没有强制执行唯一约束..您可能正在使用GUID,这并不意味着您的应用程序(或人为错误)不能在多个表中插入相同的GUID。 –