在我看来,EF4 中的继承实体 (TPT) 正在发生一个奇怪的现象。
我有三个实体。1. 资产 2. 财产 3. 活动
属性是资产的派生类型。属性有许多活动(多对多)
在我的 EDMX 中对此进行建模时,一切似乎都很好,直到我尝试将新属性插入数据库。如果该属性不包含任何活动,它可以工作,但是当我向新属性添加一些新活动时,一切都会崩溃。
事实证明,经过 2 天的网络爬网和摆弄,我注意到在 EF 存储 (SSDL) 中,实体之间的一些约束在更新过程中没有被拾取。
链接属性和活动的 Property_Activity 表仅显示一个约束 FK_Property_Activity_Activity 但缺少 FK_Property_Activity_Property。
我知道这是一个实体框架异常,因为当我将数据库中的关系切换为:
资产 <--> Asset_Activity <--> 活动
更新后,所有外键约束都被拾取并且保存成功,无论新属性中是否有活动。
这是有意的还是EF中的错误?
我该如何解决这个问题?
我应该完全放弃继承吗?