0

我有一个TPM_PROJECTVERSION名为的实例projectVersion,它有一个名为的属性TPM_USER5,它的类型是TPM_USER。ATPM_PROJECTVERSION可以有零个或一个TPM_USER5引用(对不起,我没有想出这些名字。)

当用户单击删除按钮时,我想删除此引用,从而将数据库中的列设置为空。我尝试了以下方法:

projectVersion.TPM_USER5 = null;

但是,当我调用 时context.SaveChanges(),该列没有更新,也没有任何反应。在调试器下,我可以看到projectVersion.TPM_USER5确实为空,我也看到这projectVersion.TPM_USER5Reference.IsLoaded是真的。我也试过:

context.DeleteObject(projectVersion.TPM_USER5);

如果我这样做,当我打电话时context.SaveChanges(),我会得到异常:

{“ORA-02292:违反完整性约束 (TPMDBO.TPM_PROJECTCHANGES_TPM_US_FK1) - 找到子记录”}

我很乐意发布有关实体映射的更多信息,但不确定到底是什么相关的。有任何想法吗?

4

1 回答 1

1

如果我理解正确,那么您只删除导航属性(TPM_USER5)。尝试将原始属性(TPM_USER5ID? - 可能是您的数据库列名)设置为空。

每个导航属性都必须具有相关的原始属性(不是 POCO 实体),并且您可以使用两者将用户关联到 TPM_USER5(原始属性 - 集 id,导航属性 - 集引用)。

于 2012-11-13T20:21:20.820 回答