C# Linq 查询汇总
分组取值、求和、计数
- 1 var resultlist = orderllist.GroupBy(oo => new { oo.Deptname, oo.Userid, oo.Username })
- 2 .Select(ss => new OBreakfirstModel
- 3 {
- 4 Number = number++,
- 5 Deptname = ss.Key.Deptname,
- 6 Userid = ss.Key.Userid,
- 7 Username = ss.Key.Username,
- 8 Ototalamount = ss.Sum(s => s.Ototalamount),
- 9 Ocount = ss.Sum(s => s.Ocount)
- 10 });
主从表关联,对应多条明细数据
- 1 var danzilist = DBconn.Query<ZuZModel>(sql_list, dynamicParameters).ToList();
- 2 var zijianlist= DBconn.Query<ZiMX>(sql_jian).ToList();
- 3 var resultlist = (from danzi in danzilist
- 4 select new ZuZhuangCXModel()
- 5 {
- 6 fid = danzi.fid,
- 7 rukurq=danzi.rukurq,
- 8 shiwulx=danzi.shiwulx,
- 9 wuliaobm=danzi.wuliaobm,
- 10 wuliaomc=danzi.wuliaomc,
- 11 wuliaolbdm=danzi.wuliaolbdm,
- 12 wuliaolbmc=danzi.wuliaolbmc,
- 13 shuliang=danzi.shuliang,
- 14 cangkuid=danzi.cangkuid,
- 15 cangkumc=danzi.cangkumc,
- 16 zijianmxs = (from zijian in zijianlist
- 17 where zijian.fid == danzi.fid
- 18 select new ZiJianMX()
- 19 {
- 20 fid = zijian.fid,
- 21 fdetailid = zijian.fdetailid,
- 22 wuliaobm = zijian.wuliaobm,
- 23 wuliaomc = zijian.wuliaomc,
- 24 cangkuid = zijian.cangkuid,
- 25 cangkumc = zijian.cangkumc,
- 26 shuliang = zijian.shuliang
- 27 }).ToList()
- 28 }).ToList();
分组去重
- var newycmxlist = ycmxlist.GroupBy(g => new { g.EMPI, g.SHIFOUXZ })
- .Select(item => item.First()).ToList();
两表关联、排序、对象赋值、分组去重
- List<YiChangEMPIModel> ycmxlist = new List<YiChangEMPIModel>();
- var yichang = from yc in AnalysisDbContext.EMPI_YC
- from ycmx in AnalysisDbContext.EMPI_YCMX
- where yc.ID == ycmx.ZHUBIAOID && (state == "*" ? 1==1: yc.SHIFOUXZ==state)
- && (yc.EMPI.Contains(text) || ycmx.SHENFENZH.Contains(text) || ycmx.XINGMING.Contains(text))
- orderby yc.UPDATE_TIME descending
- select new {
- ID=yc.ID,
- EMPI=yc.EMPI,
- SHIFOUXZ=yc.SHIFOUXZ,
- INSERT_TIME=yc.INSERT_TIME,
- UPDATE_TIME=yc.UPDATE_TIME
- };
- foreach (var yc in yichang)
- {
- ycmxlist.Add(new YiChangEMPIModel
- {
- ID = yc.ID,
- EMPI = yc.EMPI,
- SHIFOUXZ = yc.SHIFOUXZ,
- INSERT_TIME = yc.INSERT_TIME,
- UPDATE_TIME = yc.UPDATE_TIME
- });
- }
两个 list 关联(inner join)
- //部门信息 关联 日志表 取出上次处理时间
- //deptresult:包含各级部门和上传时间
- var deptresult = (from t1 in dapartments
- join t2 in logs on t1.DeptID equals t2.DeptID
select new DepartmentInfoModel- {
- CurntDeptID = t1.CurntDeptID,
- CurntDeptName = t1.CurntDeptName,
- DeptID = t1.DeptID,
- DeptName = t1.DeptName,
- LeaderID = t1.LeaderID,
- LeaderName = t1.LeaderName,
- Starttime = t2.Starttime,
- Endtime = t2.Endtime
- }).ToList();
两个 list 关联(left join)(list2 为空添加默认值)
- //部门信息 关联 日志表 取出上次处理时间
- //deptresult:包含各级部门和上传时间
- var deptresult = (from t1 in dapartments
- join t2 in logs on t1.DeptID equals t2.DeptID into temp
- from tempresule in temp.DefaultIfEmpty(
- new SendLogModel { Starttime = Convert.ToDateTime("2020-12-22"), Endtime = Convert.ToDateTime("2020-12-22") })
- select new DepartmentInfoModel
- {
- CurntDeptID = t1.CurntDeptID,
- CurntDeptName = t1.CurntDeptName,
- DeptID = t1.DeptID,
- DeptName = t1.DeptName,
- LeaderID = t1.LeaderID,
- LeaderName = t1.LeaderName,
- Starttime = tempresule.Starttime,
- Endtime = tempresule.Endtime
- }).ToList();
list.Remove 单个实例 / 多个实例
- List<TemplistExpenseModel> currentlist = templistExpenseModels;
- if (userid != "" && userid != null)
- {
- currentlist.Where(ee => ee.Userid == userid).ToList().ForEach(cc => { templistExpenseModels.Remove(cc); });
- return Json(new { code = 200, msg = "清除推送列表成功!" });
- }
C# Linq 查询汇总的更多相关文章
- C#基础:LINQ 查询函数整理
1.LINQ 函数 1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作 ...
- atitit. 集合groupby 的实现(2)---自定义linq查询--java .net php
atitit. 集合groupby 的实现(2)---自定义linq查询--java .net php 实现方式有如下 1. Linq的实现原理流程(ati总结) 1 2. groupby 与 事 ...
- atitit. 集合groupby 的实现(2)---自己定义linq查询--java .net php
atitit. 集合groupby 的实现(2)---自己定义linq查询--java .net php 实现方式有例如以下 1. Linq的实现原理流程(ati总结) 1 2. groupby ...
- Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询
问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...
- LinqToDB 源码分析——轻谈Linq查询
LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发 ...
- Linq查询基本操作
摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7 在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...
- Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)
为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...
- c# Linq查询
c#提供的ling查询极大的遍历了集合的查询过程,且使用简单方便,非常的有用. 下面将分别用简单的例子说明:ling基本查询.延迟查询属性.类型筛选.复合from字句.多级排序.分组查询.联合查询.合 ...
随机推荐
- what the difference betweent pin page and lock page ?
以前在项目中,大家为了避免自己使用的page被换出,使用的方式是mlock,从mlock的实现的看,它限制了page被swap, 然后在一个swap off的系统中,这样其实和mlock调用与否没有关 ...
- “判断性别”Demo需求分析和初步设计(中)
大家好~我开设了"深度学习基础班"的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序 线上课程资料: 本节课录像回放 加QQ群,获得 ...
- MySQL源码分析之SQL函数执行
1.MySQL中执行一条SQL的总体流程 2.SQL函数执行过程 1.MySQL中执行一条SQL的总体流程 一条包含函数的SQL语句,在mysql中会经过: 客户端发送,服务器连接,语法解析,语句执行 ...
- 截取url后缀扩展名方法
原本使用 Path(_['video']['downloadUrl']).suffix 获取文件扩展名,没想到出错了,查明原因发现某视频链接是https://xx.xxx.xxx/xx/xxxx.mp ...
- 数据卷之Docker File
DockerFile 是用来构建Docker镜像的构建文件,是由一些列命令和参数构成的脚本.后面再详细了解 DockerFile ! 1.我们在宿主机 /home 目录下新建一个 docker-tes ...
- KingbaseES R6 集群启动‘incorrect command permissions for the virtual ip’故障案例
案例说明: KingbaseES R6集群启动时,出现"incorrect command permissions for the virtual ip"故障,本案例介绍了如何分析 ...
- KingbaseES 自增列三种方式
KingbaseES中3种自增长类型sequence,serial,identity的区别: 对象 显示插入 显示插入后更新最大值 清空表后是否重置 是否跟事务一起回滚 多对象共享 支持重置 出现错误 ...
- C++ 左值引用与 const 关键字
左值引用是已定义的变量的别名,其主要用途是用作函数的形参,通过将左值引用变量用作参数,函数将使用原始数据,而不是副本.引用变量必须在声明时同时初始化,可将 const 关键字用于左值引用,如下所示: ...
- CentOS无法识别NTFS格式U盘完美解决方案
问题描述:CentOS上无法识别NTFS格式的U盘 解决方案: # 进入yum目录 cd /etc/yum.repos.d # 下载阿里的epel wget http://mirrors.aliyun ...
- 2.Prometheus邮件报警配置
1.安装配置 Alertmanager wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertm ...