2016-03-21 3 views
0

Я работаю над веб-приложением .net с руководством по шаблонам UnitOfWork и EntityFramework.Context.ChangeTracker.Entries() выбрасывает InvalidOperationException

Context.ChangeTracker.Entries() метод бросает InvalidOperatioException.

Сообщение: «Объект сущности не может ссылаться на несколько экземпляров IEntityChangeTracker».

Код слишком велик и включает в себя несколько слоев, поэтому здесь вы не можете вставить код.

Поскольку я использую шаблон UnitOfWork, я очень уверен, что работаю только в одном экземпляре контекста. В этом случае мы получаем эту ошибку и есть ли способ выяснить, какой объект вызывает эту проблему?

+0

* Я очень уверен, что я работаю только на одном экземпляре контекста * хорошо, я никогда не видел контекста для изменения трекеров ... –

ответ

1

Если вы используете инжектор зависимостей, то в вашей конфигурации попросите свой контейнер или фабрику DI создать один экземпляр для каждого запроса таким образом, чтобы вы были уверены, что его единственный экземпляр созданного DbContext.

+0

Я передаю часть работы на службу и служба работает в контексте, присутствующем внутри unitOfWork, и тот же unitOfWork передается последующим слоям/методам. – DivideByzero

+0

Итак, что отвечает за создание экземпляров сущности framework dbcontext? ясно из сообщения об ошибке, некоторый другой экземпляр был создан там, где вы, возможно, не знаете, поскольку у вас огромная база кода, и поэтому вам нужен инжектор зависимости, если у вас его нет –

Смежные вопросы