1

一个跟进问题Entity Framework RC1 DbContext query issue实体框架4.1和通用IRepository <T>模式和温莎

我能够使用

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

注入我的DbContext,这是伟大的工作。然而,这只有在我的上下文初始化器不需要删除数据库时才有效。

DropCreateDatabaseAlways<PlssContext> 

创建

无法除去数据库 “PLSS.Models.PlssContext”,因为它是当前正在使用的错误。

我假定表示这是在从容器温莎使用。这是否与LifeStyle为PerWebRequest有关?我也尝试过使用同一个问题的Transient。

另外我将如何使用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,版本= 2.0.0.0,文化=中性公钥=空' 不具有一个实现。

不知道怎么了与但...

回答

1

这可能是的enter image description here的经典案例

认为我在我的服务器浏览器中有一个活动的连接。

+0

也有项目中的mvc期货。删除了。然后在我的xml配置中有错误的程序集。 geeze。 – Steve 2011-03-29 02:22:12

0

你有一个版本,我们对MVC2编译装配的,你正在使用MVC3

+0

我可以从一个叫做MvcDiagnostics的很酷的nuget软件包中找到它。既然你是温莎大师,你能告诉我第一个问题吗?但是这样做时xml和流利的方式有什么区别,因为我只是在使用xml方法时遇到错误?这是一个mvc期货DLL也顺便说一句。 – Steve 2011-03-18 01:09:57

+0

尝试在XML中指定完整的程序集名称,包括版本 – 2011-03-18 13:22:06

+1

“当前正在使用”问题如何?与容器和下降并重新创建数据库? – Steve 2011-03-21 23:57:52