删除外键属性会​​导致异常

时间:2011-04-21 22:12:17

标签: c# .net entity-framework mapping entity-relationship

我不想将外键关联用于CompanyType(将保存外键ID的成员),但更喜欢使用navigation属性。所以我删除了CompanyTypeId。

我得到这个与实体公司和CompanyType之间的关系有关的例外:

  

错误5:元素'Principal'中   命名空间   'http://schemas.microsoft.com/ado/2008/09/edm'   内容不完整。清单   可能的元素:   命名空间中的'PropertyRef'   'http://schemas.microsoft.com/ado/2008/09/edm'。

enter image description here

如何在不获取异常的情况下从POCO中删除这些ID?

2 个答案:

答案 0 :(得分:8)

这是Foreign key association and Independent association之间的差异。两个关联都使用导航属性,但只有外键关联使用FK属性。您可以在@Robbie中提及全局删除它们,也可以手动更改所选关系的类型。

  • 在实体框架设计器中选择关系
  • 在属性中删除参照约束
  • 转到“映射”窗口并映射关系

以下是我的某个测试应用程序中的屏幕截图,其中包含OrderOrderLine个实体之间的一对多关系:

enter image description here

正如您所见,OrderId实体中没有OrderLine,并且关系的引用约束为空。还指定了关系的映射。

但是您永远不能从Id删除CompanyType。 Ids(PK)是强制性的。您只能在其属性中更改其可访问性。

答案 1 :(得分:4)

当您从数据库中导入模型时,系统会询问您是否要:

“在模型中包含外键列” 你需要关闭它。

enter image description here

相关问题