如何擺脫“實體對像不能被IEntityChangeTracker的多個實例引用”?

entity-framework

我在Ado.Net EF中有一個模型。我有一對多關係,當我想添加實體時,我得到了錯誤

“IEntityChangeTracker的多個實例無法引用實體對象”

任何線索?

類似的東西

Template template = new Template();
...
...
while (from < to)
{
    Course course = new Course();
    .....
    template.Course.Add(course);
    .....
}
courseEntities.AddToTemplate(template); // Problem line
courseEntities.SaveChanges();

一般承認的答案

我收到此消息,直到我開始將數據上下文存儲在HttpContext.Items屬性中。這意味著您可以為當前Web請求使用相同的數據上下文。這樣,您最終不會引用引用相同實體的2個數據上下文。

這是一篇關於DataContext Life Management的好文章。

我希望它有所幫助。

戴夫


熱門答案

“template”或它引用的內容已經添加到courseEntities 其他上下文中。我沒有在你展示的代碼中看到它會做什麼,但肯定會發生。也許它已經在你修剪過的一些代碼中發生了。查看調試器中“template”的EntityState屬性,並查看“template”屬性的EntityState。這應該可以幫助您找出上下文中已經存在的實體實例。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因