2013-06-26 32 views
3

我正在使用ServiceStack和EF的ASP.NET MVC Web應用程序。在我的AppHost中,我將Funq配置爲默認爲請求重用範圍:使用ServiceStack的Funq註冊的EF DbContext在運行單元測試時處理

container.DefaultReuse = ReuseScope.Request; 

然後我註冊我的EF上下文。

當運行單元測試(即沒有HTTP請求存在時),我得到「DbContext處置」異常。我認爲這是因爲我的上下文在沒有HTTP請求的情況下立即由Funq處置。對?

我以前有過使用StructureMap的經驗,它支持混合重用(即如果存在HTTP上下文或每個線程都是per-request),那麼我怎麼配置Func來爲我做同樣的事情?

回答

1

我的不好!原來這不是Funq的問題,而是EF數據庫遷移的問題:

顯然遷移邏輯通過處理上下文自行清理。我的問題是,我使用IDbContextFactory爲遷移提供了上下文,在我的Create方法中,我返回了由Funq容器解析的上下文實例。在遷移完成後,容器中的實例最終如何處理。

相關問題