2012-07-11 28 views
3

嗨,我想附加ObjectContextManager中的多個對象,並嘗試設置他們的狀態在「添加」模式。這些對象有一些導航屬性與他們,當我嘗試附加第一個對象後附加任何對象。它會拋出錯誤使用實體框架插入對象列表

ObjectStateManager中已存在具有相同鍵的對象。 ObjectStateManager不能使用同一個鍵跟蹤多個對象。

原因似乎非常明顯,但其解決方案是什麼。

請指導你添加新的實體

回答

0

你應該初始化ID /用隨機ID連接(如Guid.NewGuid().GetHashCode()如果你使用的Int32爲ID型)

否則有所有實體的默認標識0,當你附加實體時,ObjectStateManager會拋出異常。

1

通過在實體上調用AttachAddObject實際上附加或添加整個對象圖(EF遍歷導航屬性並對每個相關屬性執行操作)。當您嘗試添加或附加已作爲對象圖一部分附加或添加的實體時,您將會看到此異常。解決方案是瞭解您的數據模型,並僅爲脫節的對象圖調用AddObjectAttach