Дополнительный вопрос к 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' не имеет реализации.
Не уверен, что с этим, но ...