簡體   English   中英

使用.NET 4實體框架刪除引用的正確方法是什么?

[英]What is the proper way to remove a reference using the .NET 4 Entity Framework?

我有一個名為projectVersionTPM_PROJECTVERSION實例,該實例具有一個名為TPM_USER5的屬性,該屬性的類型為TPM_USER 一個TPM_PROJECTVERSION可以有零個或一個TPM_USER5引用(對不起,我沒有提供這些名稱。)

當用戶單擊“ 刪除”按鈕時,我想刪除此引用,因此將數據庫中的列設置為null。 我嘗試了以下方法:

projectVersion.TPM_USER5 = null;

但是,當我調用context.SaveChanges() ,該列未更新,並且沒有任何反應。 在調試器下,我可以看到projectVersion.TPM_USER5確實為空,並且我還看到projectVersion.TPM_USER5Reference.IsLoaded為true。 我也嘗試過:

context.DeleteObject(projectVersion.TPM_USER5);

如果執行此操作,則在調用context.SaveChanges()出現異常:

{“ ORA-02292:違反完整性約束(TPMDBO.TPM_PROJECTCHANGES_TPM_US_FK1)-找到子記錄”}

我很樂意發布有關實體映射的更多信息,但不確定確切相關的信息。 有任何想法嗎?

如果我理解正確,那么您將僅刪除導航屬性(TPM_USER5)。 嘗試將原始屬性(TPM_USER5ID?-可能是您的數據庫列名稱)設置為null。

每個導航屬性都必須具有相關的原始屬性(不是POCO實體),並且您可以使用兩者將用戶與TPM_USER5關聯(原始屬性-設置ID,導航屬性-設置引用)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM