Entity Framework 6 添加额外的继承列
Entity Framework 6 adding extra inherited column
我有继承自 MetadataTyper
class 的 class PERTActivity_T
,与其他 table 一样。
与其兄弟姐妹相反PERTActivity_T
已经拥有属性:
[ForeignKey("BSContext")]
public int? BSContextId { get; set; }
public BSContext BSContext { get; set; }
但现在我需要从 MetadataTyper
继承的所有 table 也具有这些属性。所以我从 PERTActivity_T
中删除了它们并将它们包含在 MetadataTyper
中但是当我生成迁移时它删除了从 BSContextId
到 BSContext
的关系并添加了一个名为 BSContext_Id
(带下划线)并向其添加外键。
这仅发生在 PERTActivity_T
其他 table 继承自 MetadataTyper
的迁移上。
起初我尝试手动编辑迁移以删除对 PERTActivity_T
的所有更改,因为它已经按照我需要的方式创建,一切都可以正常工作,但是当我使用映射器编辑 PERTActivity_T
或任何与之相关的 table EF 抛出错误,指出 BSContext_Id
未知。
如何让 EF 理解 PERTActivity_T
不需要任何额外的更改?
原来我的问题是 BSContext
已经包含导航 属性 到 PERTActivity_T
然后我复制了它。
我所要做的就是删除重复的导航 属性 并且迁移生成正常。
我有继承自 MetadataTyper
class 的 class PERTActivity_T
,与其他 table 一样。
与其兄弟姐妹相反PERTActivity_T
已经拥有属性:
[ForeignKey("BSContext")]
public int? BSContextId { get; set; }
public BSContext BSContext { get; set; }
但现在我需要从 MetadataTyper
继承的所有 table 也具有这些属性。所以我从 PERTActivity_T
中删除了它们并将它们包含在 MetadataTyper
中但是当我生成迁移时它删除了从 BSContextId
到 BSContext
的关系并添加了一个名为 BSContext_Id
(带下划线)并向其添加外键。
这仅发生在 PERTActivity_T
其他 table 继承自 MetadataTyper
的迁移上。
起初我尝试手动编辑迁移以删除对 PERTActivity_T
的所有更改,因为它已经按照我需要的方式创建,一切都可以正常工作,但是当我使用映射器编辑 PERTActivity_T
或任何与之相关的 table EF 抛出错误,指出 BSContext_Id
未知。
如何让 EF 理解 PERTActivity_T
不需要任何额外的更改?
原来我的问题是 BSContext
已经包含导航 属性 到 PERTActivity_T
然后我复制了它。
我所要做的就是删除重复的导航 属性 并且迁移生成正常。