我已经使用带有 ninject 注入的实体和存储库模式构建了我的站点。我的问题是我的连接似乎没有得到处理。我有大约 30 个存储库(每个表一个),并且我很快就获得了 sql expire timout preety。我不能使用常规的 using 语句,因为代码只识别注入前的接口。(在每个控制器中,我都有通过 ninject 注入的存储库接口实例)。
我已经搜索了网络,但找不到对我来说准确的解决方案。谁能帮帮我吗?代码示例:
这是在 addBindings() 下的 ninject 控制器中:
ninjectKernel.Bind<IMovieRepository>().To<MovieRepository>().InRequestScope();
和我的一个存储库:
public class MovieRepository : IMovieRepository, IDisposable
{
private Entities dataContext = new Entities();
public System.Data.Entity.DbContext DbContext
{
get { return dataContext ?? (dataContext = new Entities()); }
}
public void Dispose() { dataContext.Dispose(); }
}
在 Global.asax 文件中:
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory() as IControllerFactory);