向ServiceStack的Funq注册的EF DbContext在运行单元测试时被释放

时间:2013-06-26 17:22:18

标签: asp.net-mvc entity-framework servicestack dbcontext

我正在使用ServiceStack和EF的ASP.NET MVC Web应用程序。在我的AppHost中,我将Funq配置为默认为请求重用范围:

container.DefaultReuse = ReuseScope.Request;

然后我注册我的EF上下文。

运行单元测试时(即不存在HTTP请求时),我得到“DbContext dispos”异常。我假设这是因为我的上下文在没有HTTP请求的情况下由Funq立即处理。正确?

我之前有过支持混合重用的StructureMap的经验(即,如果存在HTTP上下文或每个线程,则是每个请求),那么我如何配置Func为我做同样的事情呢?

1 个答案:

答案 0 :(得分:1)

我的坏!事实证明这不是Funq的问题,而是EF数据库迁移的问题:

显然,迁移逻辑通过处理上下文来清理。我的问题是我使用IDbContextFactory为迁移提供了上下文,在其Create方法中,我返回了Funq容器解析的上下文实例。这是移植完成后容器中的实例最终处理的方式。