@kttotto
пофиг на чем писать

Почему EF не хочет сохранять сущность?

Есть ASP.NET WebApi приложение, к нему подключен Ninject вот таким способом calmsen.ru/nastraivaem-ninject-dlya-web-api/#more-166, есть свой dataManager (UoW) с EF репозиториями внутри, который внедряю в контроллер через конструктор. Вроде бы все правильно хорошо и красиво. Но при попытке сделать Add вылазит исключение "На объект сущности не могут ссылаться несколько экземпляров интерфейса IEntityChangeTracker."

Сначала грешил на automapper (из dto в entity) что из-за него два контекста создается. Но потом методом тыка разобрался, что дело в ninject. Если я создаю dataManager в контроллере жестко, через new, то все в порядке. Если же dataManager резолвится через ninject, то вылазит исключение.

Ну и сам вопрос, кто с таким сталкивался и как это разруливать? Заменить ninject не могу. Может быть проблема в подключении? У меня уже фантазии не хватает, второй вечер сижу с этой фигней).
  • Вопрос задан
  • 548 просмотров
Решения вопроса 1
@kttotto Автор вопроса
пофиг на чем писать
Вопрос решен. Действительно создавалось два контекста. Только ошибка была не в ninject, а в моей реализации DataManger. Получалось, что сущность была в одном контексте, а внешний ключ указывал на сущность в другом контексте. Вот оно и не хотело сохраняться.

Всем спасибо за соучастие)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmitrytut
Используй Bind().To().InRequestScope() вместо Bind().To().InSingletonScope().
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы