asp.net-mvc – 使用实体框架的没有存储库模式的依赖注入
到目前为止,我一直在我的项目存储库模式和依赖注入中实现.我为ORM使用Entity Framework,并且还有一个管理我的存储库的服务层.
我有点想做一些对手头的问题不那么重要的事情.我不太可能更改我的数据库或ORM.对于小型项目,我不需要实施测试. 但我喜欢每次获取数据时都不向数据库发送请求的想法,如果它已经在内存中从那里获取数据. 我的问题是:如果我在Asp.Net MVC应用程序中使用Entiry Framework,而不是使用存储库模式,但仍然在EF的DBContext上使用DI,我可以通过防止往返数据库服务器进行读取来获得性能的好处吗? 通过在DbContext上实现DI,我的意思是Ninject示例: kernel.Bind<MyDBContext>().ToSelf().InRequestScope(); 谢谢 解决方法
在EF DbContext之上添加存储库模式对性能优化没有帮助.
DbContext是一个工作单元,用于跟踪加载/更改/添加的实体. IDbSet< T>基本上是一个存储库.所以DbContext有一个存储库列表. DbContext负责执行一些性能优化,例如不加载相同的实体两次,而是在通过id加载两次时返回相同的实例. 所以使用 kernel.Bind<MyDBContext>().ToSelf().InRequestScope(); 而不是将自己的“存储库模式”置于MyDBContext之上是完全没问题的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Block内的ASP.NET服务器端注释
- asp.net – aspx中的设计视图没有加载
- asp.net – 如何将配置转换应用于外部配置文件
- asp.net-mvc – 适用于典型n层架构的Web API在哪里?
- asp.net-mvc-3 – 无法加载文件或程序集’System.Web.Mvc,V
- asp.net – IIS7.5中x64进程的内存限制
- 如何使用ASP.NET MVC中的正确密钥向ModelState添加错误?
- asp.net-core – 为什么.net core 2.1 SPA有3个不同的端口?
- asp.net-mvc-3 – 动态地为每个列的ASP.NET MVC Razor标头和
- 我可以通过编程方式从我的ASP.NET应用程序向IIS7中的动态IP
- asp.net-mvc-3 – MVC3下拉列表未选择所选项目
- asp.net-mvc – 为什么MVC4捆绑捆绑Knockout.js?
- .net – 单个配置密钥的多个值
- asp.net – log4net没有记录ThreadContext
- .NET Core 源码导航(按程序集链接)
- asp.net – 如何保护应用程序池免受会话序列化异
- ASP.net MVC AntiForgeryToken over AJAX
- asp.net-mvc – 朋友列表与chatjs.net SignalR M
- asp.net – 在日期字段中插入空值?
- asp.net-mvc – ASP.NET MVC区域中的自定义错误覆