主表:

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获取数量和数据的更多相关文章

  1. 用LINQ获取XML节点数据

    Insus.NET想对<从字符串中获取XML节点数据> http://www.cnblogs.com/insus/p/3299052.html 这篇改写为使用LINQ的方法实现.LINQ中 ...

  2. WindowsPhone 在 根据公历 获取月球日期数据

    WindowsPhone 在 根据公历 获取月球日期数据 WindowsPhone 在 它们的定义 类,根据公历 获取月球日期数据 using System; using System.Collect ...

  3. 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)

    原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...

  4. 以多进程读取oss符合条件的数据为例,综合使用多进程间的通信、获取多进程的数据

    import datetime import sys import oss2 from itertools import islice import pandas as pd import re im ...

  5. C#使用Linq to csv读取.csv文件数据

    前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致.其他同事有使用linq to csv ...

  6. 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

    最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...

  7. 读取TDrawGrid之获取博易数据

    朋友叫我帮忙写个从博易读取数据的工具,可无奈数据所在控件并不是Windows标准控件,也就是说没办法通过发送系统消息来获取 相关数据,于是乎试了一下从内存直接读取,可最后并不能达到预期目的,原因是笔者 ...

  8. C#中,使用正式表达式匹配获取所需数据

    .NET中,使用正式表达式匹配获取所需数据 需求:获取一串字符串中,正则匹配出需要的数据. 例如以下字符串: string temp ="ErrorCode:-1,Message:{&quo ...

  9. 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换

    [源码下载] 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换 作者:webabcd 介绍速战速决 之 PHP ...

随机推荐

  1. SpringBoot学习- 4、整合JWT

    SpringBoot学习足迹 1.Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于 ...

  2. windows重建ESP分区修复引导

    开始 装在虚拟机里面的win7实在是太卡了,所以准备把虚拟磁盘文件复制到固态硬盘,,,但是,,, 我只有128GB固态... 那就只能卸载之前通宵装的linux 好气 首先需要装进入PE UEFI + ...

  3. [luogu3950] 部落冲突 - Link Cut Tree

    有了LCT这不就是思博题了吗 #include <bits/stdc++.h> using namespace std; const int N = 1000000; int n,m,t1 ...

  4. C语言结构体数组遇上typedef

    昨天韩同学在做数据结构题的时候,问了我一个关于typedef 与结构体数组的问题: typedef struct vexnode { int vertex; arcnode* firstarc; }a ...

  5. Error: Unexpected HTTP status 413 'Request Entity Too Large' on

    由于nginx的client_max_body_size设置过小,默认上传的文件小于所要上传的文件大小,把这个值调大就可以了,我这里在配置文件的server下更改如下: server { client ...

  6. python中乱码怎么由来与解决方法

    前言曾几何时 Python 中文乱码的问题困扰了我很多很多年,每次出现中文乱码都要去网上搜索答案,虽然解决了当时遇到的问题但下次出现乱码的时候又会懵逼,究其原因还是知其然不知其所以然.现在有的小伙伴为 ...

  7. 如何查看mac多少位的操作系统?

    1.点击工具栏左上角点击 (苹果Logo)标志,关于本机  -->  更多信息 --> 系统报告  -->(左侧栏中)软件 (有的电脑是没有的例如第一张图) 2. 输入命令 una ...

  8. listView有感

    listView显示出来框,设置的是裁切后显示出来的界面,而非能装入item的空间.

  9. HTML的网页基本结构

    写在前面 <!DOCTYPE html><html lang="en"><head>            <meta charset=& ...

  10. 哥廷根: Heroes in My Heart

    哥廷根: Heroes in My Heart (本篇的文字部分均出自北大未名BBS的连载 Heroes in my heart 中哥廷根的部分,作者 ukim. 话说,有任何人能够联系上 ukim ...