【发布时间】:2020-11-10 23:14:27
【问题描述】:
我们的数据库设计中有一些表,其中包括一个名为“PK_ID”的列。此列来自类型“uniqueidentifier”(Guid)。 uniqueidentifier 指向另一个表中的实体。所以它基本上是一个外键列。
特别的是这个列没有约束。因此,您可以在此列中放置任何唯一标识符 - 值。我们有一个额外的“类型”列来确定唯一标识符指向哪个表。
这当然不符合数据库设计的良好规则,但在我们的应用程序上下文中是必要的,这不是重点。
我们的问题:
当我们使用 dotnet ef dbcontext scaffold 构建 DbContext 时,EF Core 无法通过“PK_ID”列识别与其他表的关系。这也不足为奇。
但正因为如此,我们不能使用“Include”和“IncludeThen”方法来构建 SQL-Join 查询。
我希望这有点可以理解。如何在 EntityFramework Core 中最好地处理这个问题?有没有办法使用“包含”之类的方法?
【问题讨论】:
-
目前 EF Core 仅支持物理强制数据库关系。您要问的是所谓的“多态关联”并且不受支持,这意味着您无法将其映射到导航属性,因此您无法使用
Include。 -
谢谢! “多态关联”是我搜索的技术术语。现在我在谷歌上发现了更多:D
标签: c# entity-framework-core foreign-keys