0

我有一个使用 EF6 数据库的项目,该项目首先映射到 SQL 数据库。这是全新的,所以我控制 EF 模型以及数据库模式。

我目前有一张桌子,为了简单起见,我将其称为 Vehicle。我使用鉴别器列来获取子类实体汽车和卡车。这一切都很好。

现在我需要执行“软删除”并将所有已删除的车辆移动到 VehicleHistory 表中。(在尝试使用 EF 之后,我可能会使用 SQL 事务)。这需要可审查,因此我也需要映射此历史表,但我想将其保留在继承层次结构中,以便在其他类中轻松重用。

我的想法是为共享列创建带有 FK 到 Vehicle 的“vehiclecurrent”和“vehiclehistory”表。然后我会在 EF 中使用 TPT 来获取“carcurrent”、“carhistory”等...源自我的 TPH 类(例如,carhistory->car->vehicle)。这不起作用,我收到错误 3034:“具有不同键的实体映射到同一行”

所以我的问题基本上是我怎样才能做到这一点?这种方法会奏效吗?如何,或者有其他方法可以实现吗?谢谢!

4

0 回答 0