【发布时间】:2019-03-27 17:47:32
【问题描述】:
我们要求一个表中需要引用多个表,如图所示。
请注意,该图不是正确的数据库模型,而只是代表了我们的要求。您能建议在SQL Server DB 和Entity Framework 6 中实现上述的正确方法吗?
示例:一个销售订单(在 SalesOrder 表中)可以有多个文件,这些上传的文件详细信息将存储在 UploadedFile 表中。 OrderTable 和 Invoice 也是如此。
因此,我们需要在 FileUpload 表与其他相关表之间建立具有 FK 关系的适当 DB 模型。
注意:所有的表 PK 都是自增的 int 值,我们将来可能需要添加更多的实体(表)
【问题讨论】:
-
你打算使用 Code First 吗?
-
你可以将3个表的3个id保存在一个表中,然后在新表和上传的文件之间建立关系
-
Foreign Key to multiple tables 的可能重复项。认为这很好地反映了您的问题,所以我将删除我的帖子,因为它在链接的帖子中有更详细的介绍。
-
@Tishan,我已经写了一个使用EF Code First的示例,如果你使用C#并且你想有一个替代方案,请添加C#标签并在这里回复我,我会添加样本作为答案。谢谢。
-
感谢@Tanner 的链接,我检查了那里的答案,似乎第四个选项更好,但该解决方案使实体表有一个列,仅用于它的类型,并且对于每条记录始终相同那个特定的表,例如,我的 SalesOrder 表应该有一个像“UploadTypeId”这样的列,它的值总是相同的(即 1),所以在考虑良好的数据库设计时问这样可以吗?
标签: c# asp.net sql-server database entity-framework-6