我们目前将 Unity 用于我们的 Windows 服务和 MVC 应用程序,它运行良好。我们为每个 Web 请求创建一个 ChildContainer 并将 DbContext 注入定义为分层的,因此每个 Web 请求都有自己的上下文实例。我们还有一个 BaseDbContext 类,它确保 EF 设置在我们所有的上下文中都是一致的。
到目前为止,一切都很好。现在的问题是添加了第二个数据库,因此,第二个上下文也继承自 BaseDbContext。
我们不能配置 Unity 来注入不同的上下文,因为基类是相同的。
我们找到的解决方案是创建一个ContextProvider where T : BaseDbContext并将其注册到 Unity 中,这样我们就可以通过类型来区分上下文。
但是,这似乎不对,因为 Unity 应该能够处理这种情况。
有什么建议的方法来处理这个问题?
谢谢。