先来DAL层代码。。稍后解释。。。

  public List<Staff> Getstaff(string DepId,string staffname,DateTime date ,int pageIndex ,int pageSize){using (OASysEntities entity = new OASysEntities()){List<Staff> list = new List<Staff>();if (string.IsNullOrEmpty(DepId)){list = entity.Staff.Where(m => m.StaffName.Contains(staffname) && m.JoinDate >= date).OrderByDescending(m => m.StaffId).Skip(((pageIndex - 1) * pageSize)).Take(pageSize).Select(s => s).ToList();}else{list = entity.Staff.Where(m => m.StaffName.Contains(staffname) && m.JoinDate >= date && m.DepId.ToString() == DepId).OrderByDescending(m => m.StaffId).Skip(((pageIndex - 1) * pageSize)).Take(pageSize).Select(s => s).ToList();}List<Staff> list1 = new List<Staff>();foreach (var s in list){s.DepName=entity.Department.SingleOrDefault(m => m.DepId == s.DepId).DePName;list1.Add(s);}return list1;}}

一、EF模糊查询:

bool Contains(string value):返回一个值,该值指示制定的System.String对象是否出现在此字符串中。相当于like %value%。

Contains等价于like '%key%' 指示指定的 String 对象是否出现在此字符串中。

EndsWith等价于like '%key' 确定此字符串实例的结尾是否与指定的字符串匹配。

StartsWith等价于like 'key%'  确定此字符串实例的开头是否与指定的字符串匹配。

二、EF分页:

对于List<>分页的方法

Skip():

Take():

list = entity.Staff.Where(m => m.StaffName.Contains(staffname) && m.JoinDate >= date).OrderByDescending(m => m.StaffId).Skip(((pageIndex - 1) * pageSize)).Take(pageSize).Select(s => s).ToList();

其中,pageIdex为当前第几页,pageSize为每一页有几行数据。

所以这段代码可以解释为先排序获取(Skip)第((pageIndex - 1) * pageSize)行后的数据,也就是第(pageIndex - 1) 以后的数据。再减去(Take)第pageSize行后的数据就得到了第pageIdex页。

三、多表内联查询:

我的数据库表为:
DepID为外键。
        
<pre name="code" class="csharp"> List<Staff> list1 = new List<Staff>();foreach (var s in list){s.DepName=entity.Department.SingleOrDefault(m => m.DepId == s.DepId).DePName;list1.Add(s);}return list1;}

说明:再实体层也就是Model里的Staff类(主键表)必须添加一个外键字段如public string DepName { get; set; },这样才可以使定义的List<Staff> list1拥有DepName属性。

BLL层和UI层我就不写了。。。。

使用Ef框架进行分页..EF模糊查询..EF多表内连接查询相关推荐

  1. mysql连接查询(两个表内和多个表内连接查询)

    连接是关系数据模型的主要特点,连接查询是关系数据库中最主要的查询,包括内连接.外连接等. 当两个或多个表中存在相同意义的字段时,便可以通过这些字段对不同的表进行 连接查询,得到存放在多个表中的记录数据 ...

  2. SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询

    文章目录 一.简单连接查询 二.多表连接查询 三.INNER JOIN 内连接查询 一.简单连接查询 1.直接连接:无连接规则连接两表,得到的是两个表的笛卡尔积. 连接后的行数=表1行数*表2行数 连 ...

  3. Oracle单表内连接查询

    源数据如下: 根据Col3值,把Co1和Co2映射并去空查询,预期结果如下: 思路分析: 使用单表内连接+where条件判断非空即可 查询SQL: SELECT t1.col1,t2.col2 FRO ...

  4. mysql 三个表内连接查询_MySQL5.5多表之连接查询

    连接查询 关系型数据库管理系统中,通常将每个实体的所有信息存放在一张表中,当查询数据时,通过连接操作查询多个表中的实体信息,当两个或多个表中存在相同意义的字段时,便可以通过这些字段对不同的表进行连接查 ...

  5. mysql多表内连接查询

    -- 查询用户信息和对应的订单信息 SELECT * FROM USER INNER JOIN orderlist ON `orderlist`.`uid`=user.`id`;`user`-- 查询 ...

  6. mysql常用基础操作语法(八)~~多表查询合并结果和内连接查询【命令行模式】...

    1.使用union和union all合并两个查询结果:select 字段名 from tablename1 union select 字段名 from tablename2: 注意这个操作必须保证两 ...

  7. mysql 三个表内连接查询_MySQL多表查询详解

    多表查询 1. 表与表之间的关系 <1> 一对一 用户表和身份信息表,用户表是主表 男人表.女人表 create table man( mid int primary key auto_i ...

  8. Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询

    1.使用union和union all合并两个查询结果:select 字段名 from tablename1 union select 字段名 from tablename2:

  9. mysql 内连接查询总数_MySQL - 统计内连接查询

    由于您只有一个聚合,并且您似乎按Properties行进行分组,因此这应该相对容易.你的意思是这样的(未经测试)? SELECT p.title, p.state, p.city, p.regionI ...

最新文章

  1. 使用霍夫变换检测车道线
  2. webpack为什么加载不了css?
  3. 正则表达式发明者_正则表达式 – 简介
  4. eclipse中导入spring-boot框架的jar包方法
  5. 用BlockingQueue实现生产者与消费者问题
  6. oracle shell 登录,linux 本地账号密码无法登陆(shell可以登录),一直返回 登陆的login界面...
  7. Python cmd中输入'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件。...
  8. 非域计算机上模拟域用户,App-V如何让非域内(工作组)PC 也能享受应用程序虚拟化...
  9. python装饰器class_Python中的各种装饰器详解
  10. php iis ajax 无效,IIS7中Ajax.AjaxMethod无效的原因及解决方法
  11. 开源:Taurus.MVC 框架 (已支持.NET Core)
  12. django-区分时区的时间类型
  13. C++自学笔记(3)
  14. Linux 基本命令(三)--histroy 常用命令详解
  15. 知识也许是先人留给后辈最大的财富
  16. NodeMCU(ESP8266)获取NTP时间
  17. qt-5.9.7-vc14h73c81de_0
  18. Fedora 14 下成功驱动BCM4312的步骤
  19. FRED应用:锥透镜的设计
  20. 网页对话框:window.showModalDialog的基本用法

热门文章

  1. Ecol. Lett. | 生态学实验设计中“梯度实验”和“重复实验”的抉择
  2. R语言ggplot2可视化:ggplot2可视化水平堆叠条形图、并且在每个堆叠条形图的内部居中添加百分比文本标签信息
  3. R语言plot函数散点图、密度图实战
  4. R语言使用pie函数可视化饼图(pie chart)、为饼图添加百分比信息、使用plotrix包可视化3D饼图、使用plotrix包可视化扇形饼图
  5. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加均值、标准偏差)实战
  6. Python裁剪图片(Crop an Image)
  7. 脑外伤急救后迟发性颅脑损伤影响因素分析案例
  8. 3d 自动生成物体_Adobe发布3D建模、AR内容生成应用Scantastic
  9. 分类问题的评估指标(Evaluation for Classifier)
  10. Fail to find the dnn implementation. [Op:CudnnRNN]解决办法