Entity Framework Core:在没有单独外键约束的两个表之间使用什么关系

问题描述

我目前正在尝试弄清楚如何使用 Fluent API 将当前数据库 ERD 映射到 C# 类关系。我熟悉 EF Core 的基础知识,但无法解决这个问题。这是我的 ERD 的一个例子:

| tbl_elements  |
|---------------|
| element_id    |
| last_modified |
| tbl_poles     |
|---------------|
| pole_id       |
| color         |
| height        |

| tbl_towers    |
|---------------|
| tower_id      |
| color         |
| type          |

我想像这样映射它们:element_id :pole_idelement_id: Tower_id

但是,当我使用这种方法 One-To-One 时,我在 tbl_polestbl_towers 中都得到了一个外键,我不想要这个。 我也尝试使用 Inheritance 但后来我不能再使用 tbl_elements 但我需要数据库中的所有表。我在互联网上搜索解决方案并尝试了所有提供的解决方案,但没有找到任何解决方案。我发现了这个:solution,但就像我说的,我需要父类一个单独的表而不是合并。

提供更多上下文:我正在尝试读取 shapefile.shp 并提取所有特征并将它们放入相应的表中。

解决方法

直到 .NET 5 EF Core 只支持 Table-Per-Hierarchy 继承模型。但现在它也支持 Table-Per-Type,配置起来也很容易。

检查 Microsoft Docs