0

TPM_PROJECTVERSIONと呼ばれるインスタンスがあります。これには、タイプがであるprojectVersionと呼ばれるプロパティがあります。Aには0個または1個の参照を含めることができます(申し訳ありませんが、これらの名前は思いつきませんでした)。TPM_USER5TPM_USERTPM_PROJECTVERSIONTPM_USER5

ユーザーが[削除]ボタンをクリックすると、この参照を削除して、データベースの列をnullに設定します。私は次のことを試しました:

projectVersion.TPM_USER5 = null;

ただし、を呼び出すcontext.SaveChanges()と、列が更新されず、何も起こりません。デバッガーの下では、それprojectVersion.TPM_USER5が実際にnullであることがわかります。また、それprojectVersion.TPM_USER5Reference.IsLoadedがtrueであることがわかります。私も試しました:

context.DeleteObject(projectVersion.TPM_USER5);

これを行うと、電話をかけるcontext.SaveChanges()と例外が発生します。

{"ORA-02292:整合性制約(TPMDBO.TPM_PROJECTCHANGES_TPM_US_FK1)に違反しました-子レコードが見つかりました"}

エンティティマッピングに関する詳細情報を投稿できれば幸いですが、何が関連しているかは正確にはわかりません。何か案は?

4

1 に答える 1

1

私の理解が正しければ、ナビゲーション プロパティ (TPM_USER5) のみを削除します。プリミティブ プロパティ (TPM_USER5ID? - おそらく db 列名) を null に設定してみてください。

各ナビゲーション プロパティには関連するプリミティブ プロパティ (POCO エンティティではない) が必要であり、両方を使用してユーザーを TPM_USER5 に関連付けることができます (プリミティブ プロパティ - セット ID、ナビゲーション プロパティ - セット参照)。

于 2012-11-13T20:21:20.820 に答える