当前位置: 首页 > 编程语言 > C#

当Ninject用作依赖项解析器时,如何在asp.net mvc3 App中处理DbContext(或对象)分享

时间:2023-04-11 00:41:28 C#

C#学习教程:HowtohandleDbContext(orobjectinasp.netmvc3AppwhenNinjectasadependencyresolver)DisposeDbContext(orObject)对于这个Demo,我创建了一个fakeDatabase+repository如下FakeDb+repository公共接口IDemoRepository{字符串[]GetUsers();}publicclassDemoRepository:IDemoRepository,IDisposable{publicstring[]GetUsers(){string[]Users={"Robert","Linda","Jack"};返回用户;}publicvoidDispose(){//什么都不做thrownewException("Disposediscalled");我的控制器看起来像这个publicclassTestController:Controller{protectedIDemoRepository_repository;公共BaseController(IDemoRepository存储库){_repository=存储库;}publicActionResult(){varusers=_repository.GetUsers();返回视图(用户);Ninject部分我从NUGet安装了ninject,并在kernel.Bind().To()下面添加了代码调用DemoRepository.Dispose。谁能建议我如何处理这个对象。如果要处理,请确保您的存储库绑定到Ninject中的请求范围:kernel.Bind().To().InRequestScope();您不需要Dispose()DbContext,因为它已经正确管理了所有连接。这是ASP.NETMVC技巧#34-处理对您的DataContext的引用(或不处理):调用DataContext.Dispose()方法的最重要结果是与DataContext关联的任何打开的连接都将关闭。这似乎很重要,其实不然。无关紧要的原因是DataContext类已经管理它的连接。默认情况下,DataContext类自动打开和关闭连接。...通常,当您在DataContext对象上调用Dispose()方法时,与DataContext对象关联的所有数据库连接都会关闭。DataContext对象在执行数据库查询后立即关闭数据库连接。所以Dispose()方法实际上没有任何作用。以上就是C#学习教程:当Ninject作为依赖解析器使用时,如何处理asp.netmvc3App中DbContext(或对象)共享的全部内容,如果对大家有用需要进一步了解C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: