1

在我看来,EF4 中的继承实体 (TPT) 正在发生一个奇怪的现象。

我有三个实体。1. 资产 2. 财产 3. 活动

属性是资产的派生类型。属性有许多活动(多对多)

在我的 EDMX 中对此进行建模时,一切似乎都很好,直到我尝试将新属性插入数据库。如果该属性不包含任何活动,它可以工作,但是当我向新属性添加一些新活动时,一切都会崩溃。

事实证明,经过 2 天的网络爬网和摆弄,我注意到在 EF 存储 (SSDL) 中,实体之间的一些约束在更新过程中没有被拾取。

链接属性和活动的 Property_Activity 表仅显示一个约束 FK_Property_Activity_Activity 但缺少 FK_Property_Activity_Property。

我知道这是一个实体框架异常,因为当我将数据库中的关系切换为:

资产 <--> Asset_Activity <--> 活动

更新后,所有外键约束都被拾取并且保存成功,无论新属性中是否有活动。

  1. 这是有意的还是EF中的错误?

  2. 我该如何解决这个问题?

  3. 我应该完全放弃继承吗?

4

1 回答 1

2
  1. 不是一个,而是一个糟糕的视觉设计师。
  2. 通常最好手动简单地管理实体 XML。
  3. 没有继承适用于许多情况。

基本上,我在视觉设计器中使用数据库中的更新,但知道设计器有其怪癖。我只是使用数据库中的更新来消除我想要的基础知识。然后我自己进入 Entity XML 并按照我想要的方式清理它。需要注意的是,复杂类型对设计师来说是一件痛苦的事情。如果您打算使用复杂类型,请准备好学习您的 Entity XML。

于 2010-05-25T03:01:50.953 回答