Linq Group by获取数量和数据
主表:
public partial class Activity
{
[Key]
public int pkActivity { get; set; }
public int fkEmployee { get; set; }
public string ActivityName { get; set; }
public DateTime RegistrationStartDateTime { get; set; }
public DateTime RegistrationEndDateTime { get; set; }
public DateTime StartDateTime { get; set; }
public DateTime EndDateTime { get; set; }
public int MaxNumOfPeople { get; set; }
public decimal PricePerPeople { get; set; }
public string ActivityLocation { get; set; }
public string ActivityStatus { get; set; }
public string Description { get; set; }
public string ImgUrl { get; set; }
public DateTime CreateOn { get; set; }
public string CreateBy { get; set; }
public DateTime LastModifyOn { get; set; }
public string LastModifyBy { get; set; }
}
重表:
public partial class ActivityEmployee
{
[Key]
public int pkActivityEmployee { get; set; }
public int fkActivity { get; set; }
public int fkEmployee { get; set; }
public string Comments { get; set; }
public DateTime CreateOn { get; set; }
public string CreateBy { get; set; }
}
获取当前活动注册人数linq 写法,用DefaultIfEmpty 表示left join,通过group by new 进行分组,并通过groupedTable.Key.属性 提取数据:
/// <summary>
/// 获取我创建的活动列表。
/// </summary>
/// <param name="employeeKey"></param>
/// <returns></returns>
public IEnumerable<ActivityDTO> GetMyCreatedActivitiesList(int employeeKey)
{
var query = from activity in clientDbContext.Activity
join activityEmployee in clientDbContext.ActivityEmployee
on activity.pkActivity equals activityEmployee.fkActivity into temp
from t in temp.DefaultIfEmpty()
where activity.fkEmployee == employeeKey
group t by new
{
activity.pkActivity,
activity.fkEmployee,
activity.ActivityName,
activity.RegistrationStartDateTime,
activity.RegistrationEndDateTime,
activity.StartDateTime,
activity.EndDateTime,
activity.ImgUrl,
activity.ActivityStatus,
activity.ActivityLocation,
activity.Description,
activity.CreateOn,
activity.CreateBy,
activity.LastModifyBy,
activity.LastModifyOn
}
into groupActivity
select new ActivityDTO()
{
Id = groupActivity.Key.pkActivity,
CreatedEmployeKey = groupActivity.Key.fkEmployee,
ActivityName = groupActivity.Key.ActivityName,
RegistrationStartDateTime = groupActivity.Key.RegistrationStartDateTime,
RegistrationEndDateTime = groupActivity.Key.RegistrationEndDateTime,
StartDateTime = groupActivity.Key.StartDateTime,
EndDateTime = groupActivity.Key.EndDateTime,
ActivityImageUrl = groupActivity.Key.ImgUrl,
ActivityStatus = groupActivity.Key.ActivityStatus,
ActivityLocation = groupActivity.Key.ActivityLocation,
Description = groupActivity.Key.Description,
CreateOn = groupActivity.Key.CreateOn,
CreateBy = groupActivity.Key.CreateBy,
LastModifyBy = groupActivity.Key.LastModifyBy,
LastModifyOn = groupActivity.Key.LastModifyOn,
RegisteredCount = groupActivity.Count(g=>g.fkActivity!=null)//报名人数,left join存在null数据
}; return query;
}
Linq Group by获取数量和数据的更多相关文章
- 用LINQ获取XML节点数据
Insus.NET想对<从字符串中获取XML节点数据> http://www.cnblogs.com/insus/p/3299052.html 这篇改写为使用LINQ的方法实现.LINQ中 ...
- WindowsPhone 在 根据公历 获取月球日期数据
WindowsPhone 在 根据公历 获取月球日期数据 WindowsPhone 在 它们的定义 类,根据公历 获取月球日期数据 using System; using System.Collect ...
- 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)
原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...
- 以多进程读取oss符合条件的数据为例,综合使用多进程间的通信、获取多进程的数据
import datetime import sys import oss2 from itertools import islice import pandas as pd import re im ...
- C#使用Linq to csv读取.csv文件数据
前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致.其他同事有使用linq to csv ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- 读取TDrawGrid之获取博易数据
朋友叫我帮忙写个从博易读取数据的工具,可无奈数据所在控件并不是Windows标准控件,也就是说没办法通过发送系统消息来获取 相关数据,于是乎试了一下从内存直接读取,可最后并不能达到预期目的,原因是笔者 ...
- C#中,使用正式表达式匹配获取所需数据
.NET中,使用正式表达式匹配获取所需数据 需求:获取一串字符串中,正则匹配出需要的数据. 例如以下字符串: string temp ="ErrorCode:-1,Message:{&quo ...
- 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换
[源码下载] 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换 作者:webabcd 介绍速战速决 之 PHP ...
随机推荐
- 2、gitlab使用及权限管理
目录 1.创建用户组... 2 2.创建用户... 4 3.新建项目... 5 4.linux端访问项目... 6 4.1 通过ssh方式访问... 6 4.2 通过http访问... 9 5.win ...
- 动图演示23个鲜为人知的VSCode快捷键
动图演示23个鲜为人知的VSCode快捷键 原文地址:dev.to/devmount/23… 代码同步浏览器 安装vccode 安装live server插件 尽管我在VS Code中经常使用许多快捷 ...
- 广度优先搜索(Breadth First Search, BFS)
广度优先搜索(Breadth First Search, BFS) BFS算法实现的一般思路为: // BFS void BFS(int s){ queue<int> q; // 定义一个 ...
- maven scope 的作用
一: 1.Maven中的依赖作用范围概述 Maven中使用 scope 来指定当前包的依赖范围和依赖的传递性.常见的可选值有:compile, provided, runtime, test, sys ...
- ADO.NET中sqlserver和mysql的变量名
因为ADO.NET标配是访问SQL SERVER数据库,那么如果需要访问MySQL数据库,那么ADO.NET五个对象也必须转换. 访问 SQL SERVER 的ADO.NET对象 1.SqlConne ...
- (转)Hadoop Combiner
转自:http://blog.csdn.net/jokes000/article/details/7072963 众所周知,Hadoop框架使用Mapper将数据处理成一个<key,value& ...
- web前端常用库
项目中可能用到的web前端库(持续记录): 1.轻量化货币库:https://github.com/openexchangerates/accounting.js ,美元形式.欧元形式等 2.时间 ...
- Android 系统签名
在做android产品开发的时候,很多时候都需要使用系统签名(比如在使用uid,APK升级的时候),所以,android提供给我们自定义签名文件的工具.这里将流程记录下来: 1.进入/android_ ...
- 【模板】堆优化的dijkstra
生命算法,以防忘记 #include<bits/stdc++.h> using namespace std; int head[200005],dis[200005],n,m,s,f,g, ...
- WebRTC笔记(一)
来源<WebRTC权威指南> 1 WebRTC特点 对等连接(Peer Connection):浏览器与浏览器(万维网上的任意两个通信终端)之间的连接(P2P) 信令服务器:在浏览器和对等 ...