List<Publisher> Publishers = new List<Publisher>();
Publisher publish1 = new Publisher();
publish1.Code = "";
publish1.Name = "北京出版社1";
Publishers.Add(publish1); Publisher publish2 = new Publisher();
publish2.Code = "";
publish2.Name = "北京出版社2";
Publishers.Add(publish2); List<Book> Books = new List<Book>();
Book boo1 = new Book();
boo1.Publisher = new Publisher() { Name = "北京出版社1",Code="" };
boo1.Title = "书名1";
boo1.PublisherCode = "";
Books.Add(boo1); Book boo2 = new Book();
boo2.Publisher = new Publisher() { Name = "北京出版社2",Code="" };
boo2.Title = "书名2";
boo2.PublisherCode = "";
Books.Add(boo2); Book boo3 = new Book();
boo3.Publisher = new Publisher() { Name = "北京出版社2",Code="" };
boo3.PublisherCode = "";
boo3.Title = "书名3";
Books.Add(boo3); //使用组连接
var GroupQuery = (from publisher in Publishers
join book in Books on publisher equals book.Publisher
into publisherBooks
select new
{
PublisherName = publisher.Name,
Books = publisherBooks
}).ToList(); //使用Group
var QueryByGroup = (from book in Books
group book by book.Publisher
into grouping
select new
{
PublisherName = grouping.Key.Name,
Books = grouping.ToList()
}).ToList(); var joinQuery = from publisher in Publishers
join book in Books
on publisher equals book.Publisher select new
{
PublisherName = publisher.Name,
BookName = book.Title
};
var tem = joinQuery.ToList(); //left join
var joinQuery2 = (from publisher in Publishers
join book in Books on publisher.Code equals book.PublisherCode
into publisherBooks
from publisherBook in publisherBooks.DefaultIfEmpty()
select new
{
PublisherName = publisher.Name,
BookName = (publisherBook == default(Book)) ? "no book" : publisherBook.Title
}).ToList(); //cross join
var crossJoinQuery = (from publisher in Publishers
from book in Books
select new
{
PublisherName = publisher.Name,
BookName = book.Title
}).ToList();

join Linq的更多相关文章

  1. Entity Framework Code First 在Object Join Linq查询时出现全表查询的语句。

    最近一个项目,使用微软的Entity Framework的ORM框架的项目,部署到现场后,出现了系统缓慢,多个客户端的内存溢出崩溃的问题. 打开了SQL Server Profiler(SQL Ser ...

  2. 深入调研Linq to Objects Join Linq to Entity

    最近工作中遇到数据库组合查询带来的一些问题,因此有必要调研一下Linq to Objects Join Linq to Entity.参考一些网友的代码案例,深入实践了一下使用EntityFramew ...

  3. Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式

    当前有两个表,sgroup与sgroupuser,两者通过gKey关联,而sgroup表记录的是组,而sgroupuser记录是组中的用户,因此在sgroupuser中不一定有数据.需要使用Left ...

  4. linq left join ,inner join ,crossjoin

    inner join : linq 默认使用Inner Join的链接方式,如下面的表达式一样: Left Join: 左链接返回左表的全部数据,以及右表中满足链接条件和不满足链接条件的数据,不满足的 ...

  5. Linq操作之Except,Distinct,Left Join 【转】

    最近项目中用到了Linq中Except,Distinct,Left Join这几个运算,这篇简单的记录一下这几种情形. Except      基础类型使用Linq的运算很简单,下面用来计算两个集合的 ...

  6. Linq 操作基础

    参考资料: LINQ系列:LINQ to DataSet的DataTable操作 List<T>转换为DataTable C# DataTable 和List之间相互转换的方法 Linq中 ...

  7. LINQ to SQL语句

    http://kb.cnblogs.com/page/42477/2/ 本系列文章导航 LINQ to SQL语句(1)之Where LINQ to SQL语句(2)之Select/Distinct ...

  8. Linq to EF 与Linq to Object 使用心得

    大家都知道Linq既可以用来查询数据库对象(我这里指的是Entity FrameWork里的Model对象),也可以用来查询内存中的IEnumerable对象. 两者单独查询时都不会出现什么问题,不过 ...

  9. LINQ 学习笔记(1)

    学习资源参考 : http://www.cnblogs.com/lifepoem/archive/2011/12/16/2288017.html 常用方法是 Where, OrderBy, Selec ...

随机推荐

  1. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  2. 移动web基本知识

    1.pixel像素基础 1.px:csspixel 逻辑像素,浏览器所使用的抽象单位 2.dp,pt:设备无关像素 3.devicePixelPatio 设备像素缩放比例 2.viewport 1. ...

  3. nodejs之get/post请求的几种方式

    最近一段时间在学习前端向服务器发送数据和请求数据,下面总结了一下向服务器发送请求用get和post的几种不同请求方式: 1.用form表单的方法:(1)get方法 前端代码: <form act ...

  4. 谈谈一些有趣的CSS题目(八)-- 纯CSS的导航栏Tab切换方案

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  5. JS继承之原型继承

     许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...

  6. 工行ICBC_WAPB_B2C支付接口

    一. 前期准备 手机银行(WAP)B2C在线支付接口说明V1.0.0.6.doc 手机银行移动生活商户及门户网站js接口API.doc 支付组件ICBCEBankUtil.dll和infosecapi ...

  7. ESLint的使用笔记

    原文地址:https://csspod.com/getting-started-with-eslint/?utm_source=tuicool&utm_medium=referral 在团队协 ...

  8. Android中的flexboxlayout布局

    提到FlexboxLayout大家估计有点模糊,它是谷歌最近开源的一个android排版库,它的前身Flexbox是2009年W3C提出了一种新的布局,可以简便.完整.响应式的实现页面布局,Flexb ...

  9. IT雇员及外包商选择:人品第一

    最近,苹果iOS操作系统和智能手机爆出了一个奇葩故障,在播放特定一段五秒钟的视频时能导致手机死机.唯一的解决办法是按住电源键和Home按键进行手机的重启. 第十八届中国国际高新技术成果交易会在深圳举办 ...

  10. Linux测试环境搭建的学习建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...