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 ...
随机推荐
- php不会的点
1.DIRECTORY_SEPARATOR:DIRECTORY_SEPARATOR是一个显示系统分隔符的命令,DIRECTORY_SEPARATOR是PHP的内部常量,不需要任何定义与包含即可直接使用 ...
- 黑马程序员——String类
------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...
- SQL数据库注入防范 ASP.NET Globle警告
在项目中的Global.asax页面代码中加下面的代码,就可以有效的防范简单的SQL注入. protected void Application_BeginRequest(Object sender, ...
- 《第一行代码》学习笔记12-UI(1)
1.程序需要注销或者退出,用一个专门的集合类对所有的活动进行管理即可. 2.可视化编辑工具不利于真正了解界面背后的实现原理,通常这种方式制作的界面都不具有很好的屏幕适配性, 而且当需要编写较为复杂的界 ...
- 《第一行代码》学习笔记6-活动Activity(4)
1.SecondActivity不是主活动,故不需要配置标签里的内容. 2.Intent是Android程序中各组件之间进行交互的一种重要方式,一般可被用于 启动活动,启动服务,以及发送广播等.Int ...
- Silverlight Visifire控件 后台设置颜色
ColorSet cs = new ColorSet(); cs.Id = "colorset1"; // 设置ColorSet 的 Id 为 colorset1 1.cs.Bru ...
- 交叉编译安装ARM平台上的Qt
一.宿主机环境搭建: 编译需要x11库的支持,在Ubuntu下安装命令: sudo apt-get install libx11-dev libxext-dev libxtst-dev 二.下载源码包 ...
- asp.net FileUpload 控件上传文件 以二进制的形式存入数据库并将图片显示出来
图片上传事件代码如下所示: byte[] binary = upload.FileBytes; StringBuilder sqlStrSb = new StringBuilder(); sqlStr ...
- python进行base64编解码
[转] 直接上代码 import base64 fin = open(r"D:\2.zip", "rb") fout = open(r"D:\2.x. ...
- FCKeditor 插件开发 示例
(FCKeditor.地址是:http://www.fckeditor.net/.我下载的版本是:2.6.3.)What ?FCKeditor一直是web上编辑器的比较好的一个选择,他是开源的,而且效 ...