У меня возникла проблема, я знаю, почему это проблема, но не знаю, как правильно ее исправить.Entity Framework: объект не может ссылаться на несколько экземпляров IEntityChangeTracker
Итак, мой контроллер отправляет Продукт в мой класс обслуживания вместе с 2 строками, определяющими категорию объекта.
Вот класс обслуживания.
public Product AddProduct(Product p, string cat, string subcat)
{
var category = _categoryService.GetCategoryByName(cat, subcat);
p.Categories.Add(category);
return _productRepository.CreateProduct(p);
}
Первая линия прибудет приведена категория поддержки существующей (CategroyService-> CategoryRepository-> DbContext), так что здесь я использую экземпляр моего контекста.
Затем я добавляю эту категорию в список категорий продукта. И, наконец, я даю репозиторию и сохраняю его в моей базе данных (корыто EF).
Тогда я получаю ошибку
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
Я думаю, это потому, что я первый просить категории, а затем попытаться добавить продукт. Затем трекер изменений должен отслеживать 2 контекста, и он запутывается. Дело в том, что я не понимаю, почему первый контекст из категории не удаляется, когда у меня есть моя категория.
Что мне делать?
EDIT:
_categoryService использует другой репозиторий, чем ProductRepository.
Спасибо! Я уже изменил некоторые обязанности, и действительно только один раз вызывал контекст и сохранял один раз – TanguyB