1

我在我的实体模型中使用每个层次结构继承的表,并且我有一个父表,其中包含通过外键与其他表的关系。

我的父表(产品)与另一个在 EF 中解析为导航属性的表有 FK 关系。我可以轻松地将该导航属性移动到我的子表(Fragrance)并将其从父表中删除,这很棒。但是,我也想将外键属性 (FragranceId) 移动到子级,但我不知道如何执行此操作,因为 FK 关系要求我的父表具有该属性。

下图说明了我已经走了多远,基本上我要做的就是将 FragranceId 移动到 Perfume 实体中。

图表

看起来这应该是可能的,但由于 Perfume 不是一个表,它不能处理数据库关系,虽然 Fragrance 和 Property 之间存在这种关系,但我不能从 Product 中删除 FragranceId。

移动 FragranceId 会导致 EF 错误“在 Role Product 引用的类型中没有定义名称为 FragranceId 的属性。

Fragrance 和 Perfume 之间的关系是 1 比 1。

任何帮助都是极好的。谢谢。

4

1 回答 1

0

所以事实证明答案很简单,我只需要从我的实体模型中删除数据库外键关系,我就可以将 FragranceId 移动到香水实体。

然后我需要从 edmx 文件的 XML 中手动删除对 FK 的所有引用以解决错误 3015,最后重新映射 FragranceId 以修复错误 3004。

于 2013-10-09T11:18:24.183 回答