我不想将外键关联用于CompanyType(将保存外键ID的成员),但更喜欢使用navigation属性。所以我删除了CompanyTypeId。
我得到这个与实体公司和CompanyType之间的关系有关的例外:
错误5:元素'Principal'中 命名空间 'http://schemas.microsoft.com/ado/2008/09/edm' 内容不完整。清单 可能的元素: 命名空间中的'PropertyRef' 'http://schemas.microsoft.com/ado/2008/09/edm'。
如何在不获取异常的情况下从POCO中删除这些ID?
答案 0 :(得分:8)
这是Foreign key association and Independent association之间的差异。两个关联都使用导航属性,但只有外键关联使用FK属性。您可以在@Robbie中提及全局删除它们,也可以手动更改所选关系的类型。
以下是我的某个测试应用程序中的屏幕截图,其中包含Order
和OrderLine
个实体之间的一对多关系:
正如您所见,OrderId
实体中没有OrderLine
,并且关系的引用约束为空。还指定了关系的映射。
但是您永远不能从Id
删除CompanyType
。 Ids(PK)是强制性的。您只能在其属性中更改其可访问性。
答案 1 :(得分:4)
当您从数据库中导入模型时,系统会询问您是否要:
“在模型中包含外键列” 你需要关闭它。