EF Code First "Транзакционный выпуск" - PullRequest
0 голосов
/ 16 декабря 2010

Используя последнюю версию CTP EF Code First в веб-приложении asp.net, я, похоже, столкнулся с проблемой.Пожалуйста, извините за отсутствие кода (пока), но я постараюсь объяснить хорошо.

В моих контроллерах я внедряю фабрику хранилища и IDataContext через мой контейнер DI.IDataContext - это просто интерфейс к моему DbContext, и сама фабрика репозитория также будет внедрена с одним из них.

Моя проблема в том, что при извлечении пользователя из репозитория (с фабрики) и добавлении некоторыхсвойства внутри блока using (DataContext) - IDataContext, который внедряется, изменения не сохраняются.

Если я создаю нового пользователя - это прекрасно работает.Но когда я добавляю Записи в ICollection пользователя, они не сохраняются.

Я создал тест, чтобы использовать один DataContext для создания пользователя, а затем другой DataContext - оба с использованием блоков - для добавления записей.И все работает нормально (в этой последовательности create-dispose-create-dispose).

Я предполагаю, что в контроллерах разные экземпляры IDataContext влияют на команды, отправляемые в базу данных - или даже раньше ...

Мне нужно решить проблему завтра.Но любые предложения были бы хорошими, если бы мне не удалось отследить проблему.

1 Ответ

0 голосов
/ 17 декабря 2010

Мне удалось это исправить. По сути, мне просто нужно было сообщить DependencyResolver, что экземпляры моего DbContext были для каждого запроса.

Надеюсь, это спасет кого-то от хлопот.

...