1. List<Publisher> Publishers = new List<Publisher>();
  2. Publisher publish1 = new Publisher();
  3. publish1.Code = "";
  4. publish1.Name = "北京出版社1";
  5. Publishers.Add(publish1);
  6.  
  7. Publisher publish2 = new Publisher();
  8. publish2.Code = "";
  9. publish2.Name = "北京出版社2";
  10. Publishers.Add(publish2);
  11.  
  12. List<Book> Books = new List<Book>();
  13. Book boo1 = new Book();
  14. boo1.Publisher = new Publisher() { Name = "北京出版社1",Code="" };
  15. boo1.Title = "书名1";
  16. boo1.PublisherCode = "";
  17. Books.Add(boo1);
  18.  
  19. Book boo2 = new Book();
  20. boo2.Publisher = new Publisher() { Name = "北京出版社2",Code="" };
  21. boo2.Title = "书名2";
  22. boo2.PublisherCode = "";
  23. Books.Add(boo2);
  24.  
  25. Book boo3 = new Book();
  26. boo3.Publisher = new Publisher() { Name = "北京出版社2",Code="" };
  27. boo3.PublisherCode = "";
  28. boo3.Title = "书名3";
  29. Books.Add(boo3);
  30.  
  31. //使用组连接
  32. var GroupQuery = (from publisher in Publishers
  33. join book in Books on publisher equals book.Publisher
  34. into publisherBooks
  35. select new
  36. {
  37. PublisherName = publisher.Name,
  38. Books = publisherBooks
  39. }).ToList();
  40.  
  41. //使用Group
  42. var QueryByGroup = (from book in Books
  43. group book by book.Publisher
  44. into grouping
  45. select new
  46. {
  47. PublisherName = grouping.Key.Name,
  48. Books = grouping.ToList()
  49. }).ToList();
  50.  
  51. var joinQuery = from publisher in Publishers
  52. join book in Books
  53. on publisher equals book.Publisher
  54.  
  55. select new
  56. {
  57. PublisherName = publisher.Name,
  58. BookName = book.Title
  59. };
  60. var tem = joinQuery.ToList();
  61.  
  62. //left join
  63. var joinQuery2 = (from publisher in Publishers
  64. join book in Books on publisher.Code equals book.PublisherCode
  65. into publisherBooks
  66. from publisherBook in publisherBooks.DefaultIfEmpty()
  67. select new
  68. {
  69. PublisherName = publisher.Name,
  70. BookName = (publisherBook == default(Book)) ? "no book" : publisherBook.Title
  71. }).ToList();
  72.  
  73. //cross join
  74. var crossJoinQuery = (from publisher in Publishers
  75. from book in Books
  76. select new
  77. {
  78. PublisherName = publisher.Name,
  79. BookName = book.Title
  80. }).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. CSS Position 定位属性

    本篇文章主要介绍元素的Position属性,此属性可以设置元素在页面的定位方式. 目录 1. 介绍 position:介绍position的值以及辅助属性. 2. position 定位方式:介绍po ...

  2. 深入解析Sqlite的完美替代者,android数据库新王者——Realm

    写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...

  3. WebApi基于Token和签名的验证

    最近一段时间在学习WebApi,涉及到验证部分的一些知识觉得自己并不是太懂,所以来博客园看了几篇博文,发现一篇讲的特别好的,读了几遍茅塞顿开(都闪开,我要装逼了),刚开始读有些地方不理解,所以想了很久 ...

  4. linux下安装Redis以及phpredis模块

    一:redis的安装 1. 首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载 2. 通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作 3. ...

  5. 将css和js缓存到localStorage缓存,提高网页响应速度

    适用于小站点,这很极致,很快速~~ /** * Created by SevenNight on 2016/9/21 0021. * 插件功能:使用localStorage缓存js和css文件,减少h ...

  6. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  7. Xamarin体验:使用C#开发iOS/Android应用

    Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发.   简介 Xamarin是基于Mo ...

  8. 使用LogMaster4Net实现应用程序日志的集中管理

    日志在软件系统中的重要性我在此也不赘述了,几乎所有程序员每天都会更日志打交道. 那么你是否曾今为这样的一些事情而困扰过: - 远程登录到不同的服务器,找到应用程序目然后查看应用日志: - 来回切换于不 ...

  9. Nova PhoneGap框架 第十章 开发环境

    10.1 Visual Studio + ReSharper PhoneGap程序由HTML.CSS和JS编写而成,这3种语言的编写你都可以用记事本来完成,但显然效率比较低,出错的概率也比较大.一个强 ...

  10. 探索c#之Async、Await剖析

    阅读目录: 基本介绍 基本原理剖析 内部实现剖析 重点注意的地方 总结 基本介绍 Async.Await是net4.x新增的异步编程方式,其目的是为了简化异步程序编写,和之前APM方式简单对比如下. ...