嗨,我想附加ObjectContextManager中的多個對象,並嘗試設置他們的狀態在「添加」模式。這些對象有一些導航屬性與他們,當我嘗試附加第一個對象後附加任何對象。它會拋出錯誤使用實體框架插入對象列表
ObjectStateManager中已存在具有相同鍵的對象。 ObjectStateManager不能使用同一個鍵跟蹤多個對象。
原因似乎非常明顯,但其解決方案是什麼。
請指導你添加新的實體
嗨,我想附加ObjectContextManager中的多個對象,並嘗試設置他們的狀態在「添加」模式。這些對象有一些導航屬性與他們,當我嘗試附加第一個對象後附加任何對象。它會拋出錯誤使用實體框架插入對象列表
ObjectStateManager中已存在具有相同鍵的對象。 ObjectStateManager不能使用同一個鍵跟蹤多個對象。
原因似乎非常明顯,但其解決方案是什麼。
請指導你添加新的實體
你應該初始化ID /用隨機ID連接(如Guid.NewGuid().GetHashCode()
如果你使用的Int32爲ID型)
否則有所有實體的默認標識0,當你附加實體時,ObjectStateManager會拋出異常。
通過在實體上調用Attach
或AddObject
實際上附加或添加整個對象圖(EF遍歷導航屬性並對每個相關屬性執行操作)。當您嘗試添加或附加已作爲對象圖一部分附加或添加的實體時,您將會看到此異常。解決方案是瞭解您的數據模型,並僅爲脫節的對象圖調用AddObject
或Attach
。