我有一个PortalEntities
课程,其延伸DbContext
。
我有一个EFGenRepo
课程,其中包含context
类型的私人道具PortalEntites
。这个EFGenRepo
类有一个构造函数:
public EFGenRepo(PortalEntities entities) { this.context = entities; }
现在我有一个ClientManager
类,其中有一个名为EFGenRepo
repo
的实例。请记住,因为context
中的repo
道具是私有的,我无法访问它!
现在我在ClientManager
:
FKEntityList.Add(new PortalEntities().Set<FKEntity>().Find(FKEntity_id));
这是我收到错误消息的地方:
使用FKEntityList
的查找方法构建repo
,context
本身使用EFGenRepo
中的PortalEntities
道具。
我使用autofac并注册cb.RegisterType<PortalEntities>().AsSelf().InstancePerRequest();
这样,所以可以在控制器中注入:
new PortalEntites()
但是在我的方法中,我使用PortalEntities
,并且必须以类型cb.RegisterInstance(new PortalEntities()).AsSelf().SingleInstance();
以某种方式注册。但我无法让它发挥作用。我已经尝试过以下代码:
{{1}}
有人知道如何设置吗?
答案 0 :(得分:1)
在ClientManager类中,您不应创建(甚至使用)PortalEntities类。将数据库查询逻辑移动到已存在PortalEntities实例的存储库中。