哪里可以做游戏视频网站,手机网页视频下载软件,竞品分析模板,嘉兴的信息公司网站从性能的角度出发#xff0c;能够减少 增#xff0c;删#xff0c;改#xff0c;查#xff0c;跟数据库打交道次数#xff0c;肯定是对性能会有所提升的#xff08;这里单纯是数据库部分#xff09;。 今天主要怎样减少Entity Framework查询跟数据库打交道的次数#… 从性能的角度出发能够减少 增删改查跟数据库打交道次数肯定是对性能会有所提升的这里单纯是数据库部分。 今天主要怎样减少Entity Framework查询跟数据库打交道的次数来提高查询性能。 举一个大家最常用功能 “分页” 功能。先贴一段代码。 这类型的代码大家估计都看到过也自己写过简单分析一下。 orders.Count() 返回int 类型肯定要查询出数据库才知道订单总笔数。 pagerOrders.ToList() 返回 IEnumerableT 类型这个不用解释Entity Framework IEnumerable 和 IQueryable 区别是 IEnumerable 会执行SQLIQueryable 而不会。所以这句也会去数据库查询一次。 那整个分页功能用Entity Framework 就是最少要两次数据库查询刚刚上面说了一个基本的提高性能方法就要减少与数据库打交道次数。 从“分页”功能来说要是变成只有一次与数据库打交道那就是对性能有大提升。Entity Framework 自身是没有提供这样的方法。 Entity Framework Plus 库 Query Future 扩展是一个对Entity Framework 功能的延伸和扩展能够做到减少数据库打交道次数。使查询性能更高。 一 . Entity Framework Plus 库 Query Future 安装 1. 解决方案 还是我上一篇 第一篇 Entity Framework Plus 之 Audit 用的解决方案“EntityFrameworkPlusSolution”新增 “EntityFrameworkPlus.QueryFuture.Demo” 控制台项目作为Entity Framework Plus 库 Query Future 扩展 应用和展示功能项目。项目结构截图如下 项目关系图 代码图 2. 为了方便Demo新增商品业务 相关的 ModelMapping以及改动DbContext 如下代码 GoodsModel GoodsMap EntityFrameworkPlusDbContext 3. 右键 “EntityFrameworkPlus.QueryFuture.Demo” 项目选择“管理NuGet程序包”关联部分 右上角搜索“Z.EntityFramework.Plus” 然后选择 “EntityFramework Plus (EF6) | Query Deferred”“EntityFramework Plus (EF6) | Query Futurn” 两项安装 二. Entity Framework Plus 库 Query Future 扩展功能实作 1. 在 “EntityFrameworkPlus.QueryFuture.Demo” 项目 Program 新增3个静态方法分别是 FindOrdersWithGoodsies() 查询订单信息和商品信息 FindPagerOrders(int pageSize, int pageIndex, out int totalCount) 订单分页查询 FindGoodsMaxWithMinUnitPrice() 查询单价最大和最小的商品 详细代码如下 2. 3个方法的SQL追踪和截图 FindOrdersWithGoodsies FindPagerOrders(int pageSize, int pageIndex, out int totalCount) FindGoodsMaxWithMinUnitPrice() 至此比较常用到场景就已经实作完成大家看到截图和SQL说明都是一次执行其他大家可以根据 EntityFramework Plus 源代码和文档不过是英文但是基本能够看懂进行更加深入的了解了解实现原理我这里还是抛砖引玉一下。 这篇博文的源代码https://github.com/haibozhou1011/EntityFramework-PlusSample 相关文章 第一篇 Entity Framework Plus 之 AuditEntity Framework教程(第二版) 原文地址http://www.cnblogs.com/davidzhou/p/5376598.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注