C# 存储库和两个上下文

C# 存储库和两个上下文,c#,asp.net-mvc,entity-framework,repository-pattern,C#,Asp.net Mvc,Entity Framework,Repository Pattern,我使用的是存储库模式,所以对于每个域模型,我有一个通用存储库和两个其他存储库 我有两个控制器产品控制器和类别控制器。 实际上,在categoryController中我创建了类别,然后在productController中,我将每个类别分配给所需的产品。因此,我必须在我的productController中使用这两个存储库 我的问题是我有两个ObjectContext对象。当我想用新类别更新我的产品时,会出现以下错误: 无法定义两个对象之间的关系,因为 它们附着到不同的ObjectCont

我使用的是存储库模式,所以对于每个域模型,我有一个通用存储库和两个其他存储库

我有两个控制器<代码>产品控制器和
类别控制器
。 实际上,在
categoryController
中我创建了类别,然后在
productController
中,我将每个类别分配给所需的产品。因此,我必须在我的
productController
中使用这两个存储库

我的问题是我有两个ObjectContext对象。当我想用新类别更新我的产品时,会出现以下错误:

无法定义两个对象之间的关系,因为 它们附着到不同的ObjectContext对象

我如何解决这个问题?


如何增强代码以防止此问题?

您应该将ObjectContext注入到存储库实例中,这样您就可以将同一实例注入到两个存储库中并避免错误

如果您使用的是IoC容器,它应该允许您指定它创建的实例的范围。如果您使用的是Autofac,则需要使用InstancePerRequest