博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lambda expressions
阅读量:5327 次
发布时间:2019-06-14

本文共 2295 字,大约阅读时间需要 7 分钟。

lambda:

Java lambda表达式是Java 8中的新增功能.Java lambda表达式是Java进入函数式编程的第一步。因此,Java lambda表达式是一个可以在不属于任何类的情况下创建的函数。Java lambda表达式可以作为对象传递,并按需执行。

Java lambda表达式通常用于实现简单的事件侦听器/回调,或者使用进行函数式编程。

 

lambda expressions的使用:

很多时候我们在使用Lambda表达式查询时,比如使用Lambda表达式查询用户数据,有时候会用电话或邮箱去查询用户信息,有时候又会用户名去查询用户信息

var user = db.Set
().Where(c => c.UserName = "nee32"); var user = db.Set
().Where(c => c.TelePhone = "13888888888");

其实查询的结果都一样,但唯一的区别就是Lambda表达式中的条件不一样,那么能不能只写一个查询方法,而实现Lambda表达式中Where的有查询条件呢?答案当然是 能!例如在三层架构中使用一个方法满足使用多个条件查询,代码如下

public class UserDAL    {        ///         /// 根据条件查找用户列表        ///         ///         /// 
public List
FindAll(System.Linq.Expressions.Func
> where = null) { using (EFContext db = new EFContext()) { if (where == null) return db.U_User.ToList(); else return db.U_User.Where(where).ToList(); } } }

声明了一个FindAll方法,参数是可空的Lambda表达式(Expression<Func<U_User, bool>>表示一个Lambda表达式)

其中Func<U_User, bool>使用泛型委托 传入U_User,返回一个bool值

方法调用

public ActionResult Index()        {            //List
userList = userBLL.FindAll(c => c.UserName == "nee32"); //List
userList = userBLL.FindAll(c => c.UserName == "nee32" && c.Status == 1); List
userList = userBLL.FindAll(); return View(); }

使用Expression表达式分页,注意 Linq分页之前必须先排序 分页代码如下

/// 
排序的字段类型
/// 当前页 /// 每页条数 /// 排序字段 Lambda表达式 /// 查询条件 Lambda表达式 ///
public List
GetPageList
(int pageIndex, int pageSize, Expression
> orderby,Expression
> where = null) { using (EFContext db = new EFContext()) { var query = from d in db.U_User select d; if (where != null) { query = query.Where(where); } var data = query.OrderBy(orderby) .Skip((pageIndex - 1) * pageSize) .Take(pageSize) .ToList(); return data; } }

分页方法调用

public ActionResult Index()    {        List
userList = userBLL.GetPageList(1, 20, c => c.CreateTime, c => c.UserName == "nee32"); return View(userList); } 参考官网

转载于:https://www.cnblogs.com/qiu777/p/11048015.html

你可能感兴趣的文章
Unity3D笔记 英保通三 脚本编写 、物体间通信
查看>>
python实现对某招聘网接口测试获取平台信息
查看>>
JavaWeb项目生成PDF文件添加水印图片并导出
查看>>
Algorithm——何为算法?
查看>>
css 跳转电脑分辨率
查看>>
行为型模型 中介者模式
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
Oracle数据库端分页SQL语句
查看>>
常用的107条Javascript
查看>>
Requirement-Driven Linux Shell Programming
查看>>
C# FTP 命令无法获取ServerU目录列表问题
查看>>
POJ-1191 棋盘分割 记忆化搜索
查看>>
原生ajax封装
查看>>
Entity Framework 5.0基础系列
查看>>
编写高质量代码改善C#程序的157个建议[泛型集合、选择集合、集合的安全]
查看>>
MongoDB Windows环境安装及配置
查看>>
第三次作业-陈志艺
查看>>
<q> 与 <blockquote> 的区别
查看>>
SQL注射技术总结文档
查看>>