我已經閱讀了關於附件的幾個問題和文本,但他們似乎忽略了它如何工作的一些細節。例如,我不知道爲什麼會發生以下情況:實體實例何時自動附加到上下文?
MyContext c = new MyContext();
MyEntity e = new MyEntity();
/* some local edits in e */
c.MyEntity.Add(e); // Works fine
但是如果我編輯在另一個類的函數(不創建一個新的實例)裏面,我得到IEntityChangeTracker例外:
MyContext c = new MyContext();
MyEntity e = new MyEntity();
e = ViewModelClass.SomeFunctionWhichAltersAnExistingEntityInstance(e);
c.MyEntity.Add(e); //IEntityChangeTracker "multiple instances" exception
有關此主題的大多數答案都表明,當對象連接到多個上下文時會發生這種情況。
如果這是發生了什麼事情,何時以及爲什麼實體類的一個實例自動附加到上下文(以及此上下文來自哪裏)?
關於使用實體版本: RuntimeVersion:v4.0.30319 版本:5.0.0.0
您是否在您的方法中設置了主鍵屬性? –
@GeorgeVovos號碼它是一個標識(1,1) – galmeida
你是否在方法內設置Navigational屬性?方法內的代碼與/ *中的某些本地編輯相同嗎?告訴我們的方法,如果你可以 –