entity framework 新手入门篇(3)-entity framework实现orderby,count,groupby,like,in,分页等...
前面我们已经学习了entityframework的基本的增删改查,今天,我们将在EF中实现一些更加贴近于实际功能的SQL方法。
承接上面的部分,我们有一个叫做House的数据库,其中包含house表和seller表。
在本次学习之前,我们先要了解一个神奇的接口,iqueryable这个接口类似于ienumable,但并不完全相同,Iqueryable是可查询类型需要实现的最重要的接口,在其Count,ToList,ToArray之后才会真正执行查询,所以,为了保证性能,请尽量在最后一步在进行Count,ToList,ToArray等操作。
一、entity framework 中的orderby。
public static List<House> GetListOrderByPrice(){List<House> houseList = null;using (HouseEntities db = new HouseEntities()){houseList = db.House.OrderBy(x => x.Price).ToList();//orderby方法是iqueryable类型对象的实例方法,也就是说,在where,select等方法后,都可以直接使用orderby来进行排序houseList = db.House.OrderByDescending(x => x.Price).ToList();//如果是逆序,请使用OrderByDescending方法 }return houseList;}
orderby方法就是EF的排序方法,上面的代码展示了如何提取根据价格排序取房屋列表的方法。
二、entity framework 实现计数
public static int GetCount(){int total = 0;using (HouseEntities db = new HouseEntities()){total = db.House.Count();//count方法即可实现类似SQL的count(1)方法,此方法可计算符合条件的数据条数。//count方法也是iqueryable类型对象的实例方法,所以,可以接在where,select等方法后使用,如下所示,即可查询所有1层的房屋total = db.House.Where(x => x.Floor == 1).Count();}return total;}
使用count方法即可轻松获得数量。
三、entity framework 实现groupby
public static List<String> GetGroupByRegion(){List<string> groupByList = null;using (HouseEntities db = new HouseEntities()){groupByList = db.House.GroupBy(x => x.Region).Select(x => x.Key).ToList();//GroupBy方法即可实现SQL的Group By关键字,此方法可对已有数据进行分类,需要注意的是,在groupby之后,还需要选择key作为groupby之后的字段来进行返回//GroupBy方法也是iqueryable类型对象的实例方法,所以,可以接在where,select等方法后使用//上面的例子,也可以写成ToArray,这样会返回一个字符串数组,相对开销更小,但数组长度不可变,如需对其进行扩增相对困难。 }return groupByList;}
使用上面的方法即可实现groupby。
四、entity framework 实现like和in
public static List<House> GetListOrderByPrice(string region){List<House> houseList = null;using (HouseEntities db = new HouseEntities()){houseList = db.House.Where(x=>x.Region.Contains(region)).ToList();//Contains方法是string类型对象的实例方法,在EF中,它会被最终解析为 like‘% %’的样子houseList = db.House.Where(x => x.Region.StartsWith(region)).ToList();houseList = db.House.Where(x => x.Region.EndsWith(region)).ToList();//如果需要实现like‘% ’或者 like ‘ %’则需要使用 startwith,和endwithvar ids = new int[] { 1, 2, 3 };houseList = db.House.Where(x => ids.Contains(x.ID)).ToList();//除了like以外,数组的Contains还可以实现 SQL中IN的操作。上面的代码既实现了 select * from house where id in (1,2,3) }return houseList;}
contains方法对于数组和字符串来说,可转换为不同的SQL关键字,方便我们实现LIKE和IN的操作。
五、entity framework 实现分页
public static List<House> GetListByPage(int pagesize,int pageindex,out int count){List<House> houseList = null;using (HouseEntities db = new HouseEntities()){count = db.House.Count();houseList = db.House.Skip((pageindex-1)*pagesize).Take(pagesize).ToList();//skip方法即可实现在列表中跳过N条的操作,take则可实现从当前索引开始提取N条的操作。//所以如上方法既实现了简单的分页操作,count则返回house表的真实数量。 }return houseList;}
转载于:https://www.cnblogs.com/Damos/p/EF_3.html
entity framework 新手入门篇(3)-entity framework实现orderby,count,groupby,like,in,分页等...相关推荐
- 计算机与交换机基础配置入门,新手入门篇:交换机配置窍门深入学习 -电脑资料...
新手入门篇:交换机配置技巧深入学习,关于交换机配置技巧的问题,涉及到的东西比较多, 交换机配置技巧一直以来是非常神秘的,不仅对于一般用户,对于绝大多数网管人员来说也是如此,同时也是作为网管水平高低衡量 ...
- android 蒙版图片带拖动_黑橙修图:新手入门篇2-一句话带你认识图层蒙版
大家好,这里是黑橙修图新手入门教程系列. 上一篇文章我么介绍了ps当中最核心的一个概念--图层.那么这篇文章带大家来了解一个与图层密切相关的概念--图层蒙版. 其实,图层蒙版也是一个类似图层的东西,只 ...
- CTF-攻防世界web新手入门篇
CTF-攻防世界web新手入门(全) 攻防世界网址 1.view_source 2.robots 3.backup 4.cookie 5.disabled_button 6.weak_auth 7.s ...
- java 英雄联盟回合战斗_如何赢得一场英雄联盟的战斗新手入门篇
导读:如何赢得一场英雄联盟的战斗?这里面存在非常多的因素,本文是英雄联盟欧服一篇非常入门级的心得手册,新手请进来看看,高手也可以随意看看. 综述 英雄联盟不是刷钱游戏,也不是杀人游戏,更不是类似炮塔防 ...
- java微博开发_【新手入门篇】新浪微博应用开发之Java入门篇
新浪微博应用开发之Java篇 2012年11月11日星期日 一.开发流程简介: 2. 在以下地址创建一个应用,假设创建一个桌面应用: 3. 进入管理中心,查看并记住应用ID和密码: 4. 在&q ...
- 【新手入门篇】新浪微博应用开发之Java入门篇
新浪微博应用开发之Java篇 2012年11月11日星期日 一.开发流程简介: 1. 访问http://open.weibo.com/注册成为开发者 2. 在以下地址创建一个应用,假设创建一个桌面 ...
- 嵌入式linux学习路径--新手入门篇
嵌入式linux如何入门? 前言 基础概念 计算机与嵌入式的关系 操作系统是什么? 程序 网络 ARP IP ICMP TCP UDP DNS DHCP FTP HTTP linux系统命令 目录相关 ...
- springboot 关闭懒加载_SpringBoot新手入门篇
SpringBoot是干哈的 介绍:springboot是由Pivotal团队提供的全新框架.spring的出现是为了解决企业级开发应用的复杂性,spring的通过注册bean的方式来管理类,但是随着 ...
- 大数据新手入门篇之Linux网络系统
Linux网络系统 网络信息 修改主机名 # hostname node01 //本次登录修改 # hostname //查看主机名# vi/etc/hostname //永久修改 # shutdow ...
- SpringBoot是什么?干嘛用的?(新手入门篇)
SpringBoot是干哈的 介绍:springboot是由Pivotal团队提供的全新框架.spring的出现是为了解决企业级开发应用的复杂性,spring的通过注册bean的方式来管理类,但是随着 ...
最新文章
- mysql select操作
- 【翻译】HTML5基于浏览器的媒体播放器:可以离线播放你的mp3文件
- c#实现数据集合转换为csv文本
- OpenCASCADE:OCCT应用框架OCAF之TObj模型辅助类和包装
- 如何定义和建立架构?
- freebsd linux目录,FreeBSD和Linux如何互相访问文件系统
- mysql2005卸载步骤,二次安装mysql步骤
- 性能优化实战案例——助力某移动OA系统
- tp5命令行基础介绍
- 美国签证过不了,ICLR 2020搬到埃塞俄比亚,同性恋学者:不去,保命要紧
- java防止浏览器直接打开下载的文件
- 有序多分类Logistic回归(图文+数据集)【SPSS 079期】
- React-Native-版高仿淘宝、京东商城首页、商品分类页面,android插件化和组件化
- 安卓miracast花屏_计算机通过Miracast无线投屏到其他设备,出现卡顿及花屏现象...
- 二零零九年经典雷人语录总汇四百零五条[转的]
- 6个小众口碑却非常好的APP,收藏起来,变身手机达人!
- 美国L1签证和B1,E2签证的区别
- 【无标题】C++输入两个坐标显示出输入的坐标以及均值
- 通过VISA库实现GPIB通信
- Java8 Lambda表达式语法和示例
热门文章
- 文件不小心删除了怎么恢复呢,怎么恢复误删除的文件
- 推荐的五款市面上常用的免费CMS建站系统
- ios键盘done中文_iOS键盘事件实现、控制
- 计算机主机解剖图,电脑主机结构示意图
- 《相关性准则——大数据时代的高效能之道》一一1.6 相关性准则
- android打印机字体大小,热敏打印机字体大小设置,怎么设置打印机字体
- android手机内存不足使用sd卡,解决红米内存不足(内置SD卡与外置SD卡互换)
- android如何加密所有的布局文件夹,android:是否可以加密文件夹
- Android创建快捷方式-SHORTCUT
- 2021-03-27