lambda表达式查询经验:IN 和groupby的使用
lambda In的用法:
lambda表达式查询没有IN这个方法,可以变通一下,in查询的数组是否包含在映射对象里面的集合里:
如下代码:
- var departmentIDs = input.DepartmentIDs.Split(',').Select(s => int.Parse(s)).ToList();//这是从前端传进来的字符串数组,需要转换成int
- db.whereLambda.Add(d => departmentIDs.Contains(d.DepartmentID));//whereLambda是where条件里面的lamdba表达式,db是上下文数据。这句话就是实体集合是否包含departmentIDs 。
SQL:select * from db where DepartmentID in(departmentIDs)
lambda groupby的用法
计算各种统计在数据库用group by
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组
然后计算,在数据库计算统计用的非常多
我们这里用lambda 表达式查询也能实现
- //单个分组GROUP BY
- var rels= rel.GroupBy(a => a.PlatformName).Select(s=>new MarketInfoInvalidRatioExtend
{ BusinessName = s.Key,AssignNum=s.Sum(c=>c.AssignNum),InvalidNum=s.Sum(I=>I.InvalidNum)} ).ToList();- //多个分组GROUP BY
- var rel = db.FindList(10000, db.whereLambda, b => b.MKBTID, true).GroupBy(g => new
{ g.PlatformName, g.BusinessName, g.DepartmentName, g.ResourceName }).Select(s=>new MarketInfoInvalidRatioExtend
{ PlatformName=s.Key.PlatformName, BusinessName=s.Key.BusinessName, DepartmentName=s.Key.DepartmentName, ResourceName=s.Key.ResourceName,
AssignNum =s.Sum(w=>w.AssignNum), EmptyNum = s.Sum(w => w.EmptyNum), BlacklistNum=s.Sum(w=>w.BlacklistNum), ErrorNum= s.Sum(w => w.ErrorNum),
InvalidNum=s.Sum(w=>w.InvalidNum) });
注意的是Select NEW 一个新实体的本身不能与查询的集合实体相同,否则会报错“在 LINQ to Entities 查询中无法构造实体或复杂类型""”。
lambda表达式查询经验:IN 和groupby的使用的更多相关文章
- CRL快速开发框架系列教程二(基于Lambda表达式查询)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- Util应用程序框架公共操作类(七):Lambda表达式公共操作类
前一篇扩展了两个常用验证方法,本文将封装两个Lambda表达式操作,用来为下一篇的查询扩展服务. Lambda表达式是一种简洁的匿名函数语法,可以用它将方法作为委托参数传递.在Linq中,大量使用La ...
- Linq专题之Lambda表达式
这一节我们讲的Lambda表达式跟匿名函数有关.Lambda表达式就是一个匿名函数,它可以包含表达式和语句,并且可以创建委托和表达式树. Lambda表达式的组成: 输入参数.Lambda运算符(=& ...
- Lambda表达式的本质是匿名函数
1.委托的简介: 委托可以简单的理解为方法的列表,添加的方法的参数类型,个数,顺序必须和委托一致, 也就是说委托起到了托管方法的作用,并且约束了要调用的方法. //1声明委托 public deleg ...
- MybatisPlus Lambda表达式 聚合查询 分组查询 COUNT SUM AVG MIN MAX GroupBy
一.序言 众所周知,MybatisPlus在处理单表DAO操作时非常的方便.在处理多表连接连接查询也有优雅的解决方案.今天分享MybatisPlus基于Lambda表达式优雅实现聚合分组查询. 由于视 ...
- Lambda表达式与标准运算符查询
class Program { static void Main(string[] args) { //Lambda表达式输出List集合每一项 List<string> list = n ...
- C# LINQ查询表达式用法对应Lambda表达式
C#编程语言非常优美,我个人还是非常赞同的.特别是在学习一段时间C#后发现确实在它的语法和美观度来说确实要比其它编程语言强一些(也可能是由于VS编译器的加持)用起来非常舒服,而且对于C#我觉得他最优美 ...
- lambda表达式和查询表达式
(1)Lambda表达式定义: Lambda是创建匿名函数的另一种形式.它比对应的匿名方法更加的简化.因此,所有的情况都推荐使用Lambda表达式. 它可以包括表达式和语句,并且用于创建委托和事件 ...
- EntityFramework动态多条件查询与Lambda表达式树
在常规的信息系统中, 我们有需要动态多条件查询的情况, 例如UI上有多个选择项可供用户选择多条件查询数据. 那么在.net平台Entity Framework下, 我们用Lambd ...
随机推荐
- leetcode--011 copy list with random pointer
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3UAAABjCAIAAACzC75sAAAMTElEQVR4nO3cyYHivBYG0D8n0nIojo ...
- wordpress-标签
来源1:http://www.graphicrating.com/2009/01/18/my-wordpress-cheat-sheet/ 来源2:http://www.cnblogs.com/asq ...
- HTML CSS基础(三)
3种列表:有序列表.无序列表和定义列表 表1 3种列表记忆 标签 语义 说明 ol ordered list 有序列表 ul unordered list 无序列表 dl definition lis ...
- ECSHOP session
ECSHOP session传值 <?phpclass cls_session{ var $session_table = ''; ; // SESSION 过期时间 var $sess ...
- winform - json串的转换
通过java接口,或者查询数据库返回json串. 可以有两种方式进行解读. 1.简单方式 没有深层结构,最好只有一条数据(当然也可多条).可以用datatable来获取.返回的是clo0.clo1.c ...
- winform总结5> winform程序开发注意事项
1.全局异常捕获 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理UI线程异常 Ap ...
- NodeMCU之旅(四):实现Web配置页面
引言 利用Web页面做配置可以轻松适应用户的多种设备,如Android, IOS等.本文将介绍如何在NodeMCU中实现配置页面. 接线图请参考NodeMCU之旅(三):响应配置按钮. 配置页面后端 ...
- jquery 组合键键盘事件
jQuery处理键盘事件,比如小说网站中常见的按左右键来实现上一篇文章和下一篇文章,按ctrl+回车实现表单提交,google reader和有道阅读中的全快捷键操作... 本文讲述jQuery处理按 ...
- EF Code First:实体映射
二.实体映射 实体与数据库的映射可以通过DataAnnotation与FluentAPI两种方式来进行映射: (一) DataAnnotation DataAnnotation 特性由.NET 3.5 ...
- 解决Centos 7 下 tomcat字体异常 Font '宋体' is not available to the JVM
错误提示: SEVERE: Servlet.service() for servlet [example] in context with path [/myproject] threw except ...