C# 基于实体框架的WCF服务中存储库模式的依赖注入
我有接收IRepository的WCF服务C# 基于实体框架的WCF服务中存储库模式的依赖注入,c#,entity-framework,wcf,dependency-injection,repository,C#,Entity Framework,Wcf,Dependency Injection,Repository,我有接收IRepository的WCF服务 IRepository repository; public MyWcfService(IRepository repository) { this.repository= repository; } 存储库需要基于实体框架。它有方法获取,保存,等等 我的问题是,如果每次从这个WCF服务类调用方法时都要创建和处理DbContext,那么我应该如何实现这个存储库类 另外,我正在使用Ninject库解析依赖项如果您想将数据库上下文作为存储库类的
IRepository repository;
public MyWcfService(IRepository repository)
{
this.repository= repository;
}
存储库需要基于实体框架。它有方法获取
,保存
,等等
我的问题是,如果每次从这个WCF服务类调用方法时都要创建和处理DbContext
,那么我应该如何实现这个存储库类
另外,我正在使用Ninject库解析依赖项如果您想将数据库上下文作为存储库类的依赖项,那么存储库类应该实现IDisposable,并且在Dispose方法中,您应该处理数据库上下文 您的存储库应该在http请求处理结束时被处置,因此您应该使用InRequestScope()注册IRepository。您还应该使用InRequestScope()注册WCF服务,使其不会超过IRepository 以下是关于InRequestScope()的文档:
ninject中对象范围之间的差异:
在WCF中使用依赖项注入有点不同。您需要连接到实例创建管道和服务主机 有一个特定的Ninject扩展可以简化这一过程:Ninject.extensions.Wcf 还有一个博客将解释如何使用它: 注意:这是一个有点牵扯,所以抱歉的链接只参考。。。其他人可以基于此自由创建完整答案