Linq GroupJoin 使用
备忘:
var data = BoshccEntities.Current.TB_MB_1
.GroupJoin(BoshccEntities.Current.TB_MB_2, o => o.HospitalID, m => m.MemberID, (t, m) => new { t, m })
.GroupJoin(BoshccEntities.Current.TB_CM_3, o => o.t.ServiceCode, s => s.DicNum, (o, s) => new { t = o.t, m = o.m, s })
.GroupJoin(BoshccEntities.Current.TB_CM_3, o => o.t.PaymentMethodCode, p => p.DicNum, (o, p) => new { t = o.t, m = o.m, s = o.s, p })
.Where(o =>
(isenable.HasValue ? o.t.IsEnable == isenable.Value : true)
&& (hasHospital ? hospitalIDs.Contains(o.t.HospitalID) : true)
&& (hasService ? o.t.ServiceCode == service : true)
&& (hasPayment ? o.t.PaymentMethodCode == payment : true))
.OrderBy(o => o.t.ID)
.Select(o => new
{
ID = o.t.ID,
HospitalID = o.t.HospitalID,
ServiceCode = o.t.ServiceCode,
PaymentMethodCode = o.t.PaymentMethodCode,
IsEnable = o.t.IsEnable,
Remark = o.t.Remark, Hospital = o.m.FirstOrDefault(), //关键1
Service = o.s.FirstOrDefault(),
Payment = o.p.FirstOrDefault()
})
.ToList() //关键2
.Select(o => new TB_MB_4
{
ID = o.ID,
HospitalID = o.HospitalID,
ServiceCode = o.ServiceCode,
PaymentMethodCode = o.PaymentMethodCode,
IsEnable = o.IsEnable,
Remark = o.Remark, HospitalName = o.Hospital == null ? "" : o.Hospital.HospitalName, //关键3
ServiceName = o.Service == null ? "" : o.Service.DicName,
PaymentName = o.Payment == null ? "" : o.Payment.DicName
});
Linq GroupJoin 使用的更多相关文章
- Linq GroupJoin
static void Main(string[] args) { List<Person> persons = new List<Person> { }, }, }; Lis ...
- Linq GroupJoin , Join
static void Main(string[] args) { List<Person> persons = new List<Person> { }, }, }; Lis ...
- LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法
介绍 ·Select - Select选择:延迟 ·Where - Where查询:延迟 ·OrderBy - 按指定表达式对集合正序排序:延迟 ·OrderByDescend ...
- LINQ标准查询操作符(二)——Join、GroupJoin、GroupBy、Concat、
四.联接操作符 联接是指将一个数据源对象与另一个数据源对象进行关联或者联合的操作.这两个数据源对象通过一个共同的值或者属性进行关联. LINQ有两个联接操作符:Join和GroupJoin. 1. J ...
- [C#] LINQ之Join与GroupJoin
声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.编写Person与City类,如下: class Person { public int CityID { set; get; } ...
- Linq分组操作之GroupBy,GroupJoin扩展方法源码分析
Linq分组操作之GroupBy,GroupJoin扩展方法源码分析 一. GroupBy 解释: 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值. 查询表达式: var ...
- LINQ之 Join 与 GroupJoin
声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.编写Person与City类,如下: class Person { public int CityID { set; get; } ...
- [C#] LINQ之SelectMany和GroupJoin
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Linq in GroupBy GroupJoin
还是上一份的代码例子: public class Person { public int ID { get; set; } public string Name { get; set; } publi ...
随机推荐
- BULK INSERT如何将大量数据高效地导入SQL Server
转载自:http://database.51cto.com/art/201108/282631.htm BULK INSERT如何将大量数据高效地导入SQL Server 本文我们详细介绍了BULK ...
- POJ 1743 - Musical Theme 最长不重叠重复子串
题意: 给出一列数据,问你其中重复的最长连续子串的长度 但是有要求: 1. 长度至少为 5 . 2. 两串可以不相等,但两串每个对应位置的数字相减差值固定 (即 ...
- hdu find the safest road
算法:多源最短路(floyd) 题意:每条通路有一个安全系数,求始点到终点的最大的安全系数并输出,如果没有输出What a pity! c++超时啊 Problem Description XX星球有 ...
- sublime快捷键保存
快捷键 功能 ctrl+shift+n 打开新Sublime ctrl+shift+w 关闭Sublime,关闭所有打开文件 ctrl+shift+t 重新打开最近关闭文件 ctrl+n 新建文件 c ...
- jquery.BannerRotator.js
项目地址:https://github.com/snipertulip/BannerRotator 演示地址:http://snipertulip.github.io/BannerRotator/de ...
- JSON对象与JSON数组的长度和遍历方法
JSON对象与JSON数组的长度和遍历方法 1.json对象的长度与遍历 结构:var json={“name”:”sm”,”sex”:”woman”} ...
- Java 执行终端命令实现,调用执行另外一个Java文件
Test.java package com.journaldev.files; public class Test { public static void main(String[] args) { ...
- 关于css伪类:hover的用法
关于伪类:hover大家都用过,也比较熟悉.今天介绍一种新的用法(不是我发现的,但是以前一直没这么用过).在Chrome浏览器下,当a标签使用display:black;时a:hover的属性浏览器就 ...
- POJ1636 动态规划+并查集
POJ1636 问题重述: 两个监狱中各有m个囚犯,欲对这两个监狱中的囚犯进行等数量的交换.已知某些囚犯不能关押在同一个监狱,求解可以交换人数的最大值k (k < m/2). 分析: 假设监狱1 ...
- win8(64位)下memcache安装时报错“ failed to install service or service already installed” 与安装
解决办法: 1.找到cmd.exe文件(c:\windows\system32\cmd.exe) 2.右键cmd.exe以管理员方式运行 3.把php_memcache.dll放到php的ext目录: ...