我有一个名为TPM_PROJECTVERSION
的{{1}}实例,其中有一个名为projectVersion
的属性,类型为TPM_USER5
。 TPM_USER
可以有零个或一个TPM_PROJECTVERSION
引用(抱歉,我没有提出这些名称。)
当用户单击删除按钮时,我想删除此引用,从而将数据库中的列设置为null。我尝试了以下内容:
TPM_USER5
但是,当我调用projectVersion.TPM_USER5 = null;
时,该列不会更新,也不会发生任何事情。在调试器下,我可以看到context.SaveChanges()
确实为空,我也看到projectVersion.TPM_USER5
为真。我也试过了:
projectVersion.TPM_USER5Reference.IsLoaded
如果我这样做,当我致电context.DeleteObject(projectVersion.TPM_USER5);
时,我会得到例外:
{“ORA-02292:完整性约束 违反了(TPMDBO.TPM_PROJECTCHANGES_TPM_US_FK1) - 找到了儿童记录“}
我很乐意发布有关实体映射的更多信息,但不确定究竟有什么相关性。有什么想法吗?
答案 0 :(得分:1)
如果我理解正确,那么您只删除导航属性(TPM_USER5)。尝试将原始属性(TPM_USER5ID? - 可能是您的数据库列名称)设置为null。
每个导航属性必须具有相关的原始属性(不是POCO实体),您可以使用它们将用户与TPM_USER5相关联(原始属性 - 设置ID,导航属性 - 设置参考)。