这可能已在较新的EF.Core中解决,但我将较旧的EF6与MVC和WebApi框架一起使用。
在MVCApplication的Application_Start()方法中,我们尝试使用DbContext进行一些设置工作。 DbContext和相关服务已在MVC Autofac DI容器中注册。服务已从容器中解析并正常运行,包括运行Initializer,为数据库添加种子,然后应用程序成功启动并加载HomeController。
但是,如果我们随后发出Api请求,则为DbContext;这次从WebApi Autofac DI容器解析的结果将重新运行Intializer,删除数据库并运行seed方法。这意味着我们在Application_Start()中执行的设置工作已删除!
我开始怀疑这是否与MVC和WebApi的两个单独的DI容器有关...?如果是这种情况,那么我不相信可以从Application_Start()方法或MvcApplication类访问WebApi容器。
阅读您如何解决它们的任何类似经历都会很有趣。