Как избавиться от «На объектный объект нельзя ссылаться несколькими экземплярами 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 . Это означает, что вы можете использовать тот же контекст данных для текущего веб-запроса. Таким образом, вы не получите 2 контекста данных, ссылающихся на одни и те же объекты.

Вот хороший пост на DataContext Life Management .

Я надеюсь, что это помогает.

Дейв


Популярные ответы

«Шаблон», или что-то, на что он ссылается, уже добавлен в courseEntities или другой контекст. Я не вижу ничего в коде, который вы показываете, он бы это сделал, но это, безусловно, происходит. Возможно, это происходит в некотором коде, который вы урезали. Посмотрите на свойство EntityState шаблона в отладчике и посмотрите на EntityState свойств шаблона. Это должно помочь вам узнать, какой экземпляр сущности уже находится в контексте.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему