Entity framework 用单位分解复杂对象图

Entity framework 用单位分解复杂对象图,entity-framework,dependency-injection,unity-container,dbcontext,Entity Framework,Dependency Injection,Unity Container,Dbcontext,我有以下情况,箭头表示依赖项: 如何解析实体管理器对象?当我解析一个实例时,它会创建客户和地址存储库的两个实例,但这些实例需要相同的Dbcontext 但是我不希望Dbcontext在整个应用程序中是静态的,在解析另一个实体管理器时,它应该解析一个单独的Dbcontext…您可以统一注册Dbcontext,创建新的子容器,并从新的子容器解析实体管理器。因此,您将为每个实体管理器提供新的Dbcontext实例。也许PerResolveLifetimeManagerforDbcontext可以帮助

我有以下情况,箭头表示依赖项:

如何解析实体管理器对象?当我解析一个实例时,它会创建客户和地址存储库的两个实例,但这些实例需要相同的Dbcontext


但是我不希望Dbcontext在整个应用程序中是静态的,在解析另一个实体管理器时,它应该解析一个单独的Dbcontext…

您可以统一注册Dbcontext,创建新的子容器,并从新的子容器解析实体管理器。因此,您将为每个实体管理器提供新的Dbcontext实例。

也许
PerResolveLifetimeManager
for
Dbcontext
可以帮助您

图形中的所有对象都有相同的实例,但在每个图形解析中都会创建一个新实例


完整示例。

最好的方法是删除存储库层并直接查询上下文。这听起来有争议,但事实并非如此。我不相信。我对这个想法持开放态度,但你能证明这一点吗?从这里开始举个例子:PerResolveLifetimeManager就是为这种情况创建的。为什么子容器会使事情复杂化?