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