Entity Framework 4.1 и общий IRepository <T>Pattern и Windsor - PullRequest
1 голос
/ 17 марта 2011

Дополнительный вопрос к Entity Framework RC1 Проблема запроса DbContext

Я могу ввести свой DbContext, используя

    Component.For<IEFDataContextProvider>().ImplementedBy<EFDataContextProvider>().LifeStyle.PerWebRequest
        .DynamicParameters((k, d) => d["context"] = new PLSS.Models.PlssContext())

и это прекрасно работает. Однако это работает, только если мой инициализатор контекста не должен удалять базу данных.

    DropCreateDatabaseAlways<PlssContext>

создает ошибку

Невозможно удалить базу данных "PLSS.Models.PlssContext", поскольку она в данный момент используется.

Я предполагаю, что это означает, что это используется из контейнера виндзор. Связано ли это с LifeStyle, являющимся PerWebRequest? Я также пробовал переходный процесс с той же проблемой.

Также, как бы я использовал представление контейнера xml для создания компонентов. Я бы предпочел, чтобы он был в моем файле windsor.config, чтобы я мог изменить его при необходимости.

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

  <component
  id="IEFDataContextProvider"
  service="AGRC.Common.Repositories.IEFDataContextProvider, AGRC.Common"
  type="AGRC.Common.Repositories.EFDataContextProvider, AGRC.Common"
  lifestyle="PerWebRequest">
  <parameters>
    <context>
      ${PlssContext}
    </context>
  </parameters>
</component>

<component
  id="PlssContext"
  type="PLSS.Models.PlssContext, PLSS.Models"
  lifestyle="transient">
</component>

Метод 'GetControllerSessionBehavior' в типе 'Microsoft.Web.Mvc.MvcDynamicSessionControllerFactory' из сборки 'Microsoft.Web.Mvc, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = null' не имеет реализации.

Не уверен, что с этим, но ...

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Это может быть классический случай enter image description here

Думаю, у меня было активное соединение в проводнике моего сервера.

0 голосов
/ 18 марта 2011

У вас есть версия сборки, скомпилированная для MVC2, и вы используете MVC3

...