2013-06-26 29 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容器解析的上下文实例。在迁移完成后,容器中的实例最终如何处理。

相关问题