Lambda Expressions表达式使用
2018-06-22 06:04:30来源:未知 阅读 ()
很多时候我们在使用Lambda表达式查询时,比如使用Lambda表达式查询用户数据,有时候会用电话或邮箱去查询用户信息,有时候又会用户名去查询用户信息
var user = db.Set<U_User>().Where(c => c.UserName = "nee32"); var user = db.Set<U_User>().Where(c => c.TelePhone = "13888888888");
其实查询的结果都一样,但唯一的区别就是Lambda表达式中的条件不一样,那么能不能只写一个查询方法,而实现Lambda表达式中Where的有查询条件呢?答案当然是 能!例如在三层架构中使用一个方法满足使用多个条件查询,代码如下
public class UserDAL { /// <summary> /// 根据条件查找用户列表 /// </summary> /// <param name="where"></param> /// <returns></returns> public List<U_User> FindAll(System.Linq.Expressions.Func<U_User, bool>> 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<U_User> userList = userBLL.FindAll(c => c.UserName == "nee32"); //List<U_User> userList = userBLL.FindAll(c => c.UserName == "nee32" && c.Status == 1); List<U_User> userList = userBLL.FindAll(); return View(); }
使用Expression表达式分页,注意 Linq分页之前必须先排序 分页代码如下
/// <typeparam name="TKey">排序的字段类型</typeparam> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">每页条数</param> /// <param name="orderby">排序字段 Lambda表达式</param> /// <param name="where">查询条件 Lambda表达式</param> /// <returns></returns> public List<U_User> GetPageList<TKey>(int pageIndex, int pageSize, Expression<Func<U_User, TKey>> orderby,Expression<Func<U_User, bool>> 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<U_User> userList = userBLL.GetPageList(1, 20, c => c.CreateTime, c => c.UserName == "nee32"); return View(userList); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- asp.net正则表达式删除指定的HTML标签的代码 2019-09-17
- 最全面的常用正则表达式大全 2018-06-22
- Lambda表达式的前世今生~~~~~~ 2018-06-22
- 使用C#正则表达式获取必应每日图片地址 2018-06-22
- 委托到匿名方法到lambda表达式 2018-06-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash