var 构建匿名类型1 = from c in ctx.GetTable<Customers>()
                          select new
                          {
                              城市 = c.City,
                              名字 = c.Name
                          };

var 构建匿名类型2 = from emp in ctx.GetTable<Customers>()
                          select new
                          {
                              城市 = emp.City,
                              名字 = emp.Name
                          };

var 多条件 = from c in ctx.GetTable<Customers>()
                      where c.Name == "Jay" && c.City == "雷州"
                      select new
                      {
                          名字 = c.City,
                          城市 = c.City
                      };

var 排序 = from c in ctx.GetTable<Customers>()
                     where c.City == "雷州"
                     orderby c.Name descending, c.City ascending
                     select new
                     {
                         名字 = c.Name,
                         城市 = c.City
                     };

//按照每页 10 条记录,查询第二页的顾客
            var 分页 = (from c in ctx.GetTable<Customers>() select c).Skip(10).Take(10);

//根据顾客的国家分组,查询顾客数大于 5 的国家名和顾客数
            var 一般分组 = from c in ctx.GetTable<Customers>()
                       group c by c.City into g
                       where g.Count() > 5
                       orderby g.Count() descending
                       select new
                       {
                           国家=g.Key,
                           顾客数=g.Count()
                       };

//根据国家和城市分组,查询顾客覆盖的国家和城市
            var 匿名类型分组 = from c in ctx.GetTable<Customers>()
                         group c by new { c.City, c.Name } into g
                         orderby g.Key.City, g.Key.Name
                         select new
                         {
                             国家 = g.Key.Name,
                             城市 = g.Key.City
                         };

var 过滤相同项 = (from c in ctx.GetTable<Customers>() orderby c.Name select c.Name).Distinct();

var 连接并且过滤相同项 = (from c in ctx.GetTable<Customers>()
                             where c.City.Contains("A")
                             select c)
                           .Union(from c in ctx.GetTable<Customers>()
                                  where c.Name.StartsWith("A")
                                  select c).OrderBy(c => c.City);

var 连接并且不过滤相同项 = (from c in ctx.GetTable<Customers>()
                              where c.City.Contains("A")
                              select c).Concat
                                (from c in ctx.GetTable<Customers>() where c.City.StartsWith("A") select c)
                                .OrderBy(c => c.City);
            //查询城市是 A 打头的顾客和城市包含 A 的顾客的交集,并按照顾客名字排序
            var 取相交项 = (from c in ctx.GetTable<Customers>()
                        where c.City.Contains("A")
                        select c).Intersect
                          (from c in ctx.GetTable<Customers>()
                           where c.City.StartsWith("A")
                           select c).OrderBy(c => c.City);
            //查询城市包含 A 的顾客并从中删除城市以 A 开头的顾客,并按照顾客名字排序
            var 排除相交项 = (from c in ctx.GetTable<Customers>()
                         where c.City.StartsWith("A")
                         select c).Except
                           (from c in ctx.GetTable<Customers>()
                            where c.Name.StartsWith("A")
                            select c).OrderBy(c => c.Name);
            //查询订单数超过 5 的顾客信息
            var 子查询 = from c in ctx.GetTable<Customers>()
                      where
                 (from o in ctx.GetTable<Customers>()
                  group o by o.CustomerID into o
                  where
                      o.Count() > 5
                  select o.Key).Contains(c.CustomerID)
                      select c;

//查询指定城市中的客户
            var in操作 = from c in ctx.GetTable<Customers>()
                       where new string[] { "B", "A", "C" }.Contains(c.City)
                       select c;

//内连接,没有分类的产品查询不到
            var innerjoin = from p in ctx.GetTable<Customers>()
                            join c in ctx.GetTable<Customers>()
                            on p.CustomerID equals c.CustomerID
                            select p.Name;

//外连接,没有分类的产品也能查询到
            var leftjoin = from p in ctx.GetTable<Customers>()
                           join c in ctx.GetTable<Customers>()
                           on p.City equals c.City
                           into pro
                           from x in pro.DefaultIfEmpty()
                           select p.Name;

var 单结果集存储过程 =
                from c in ctx.sp_singleresultset()
                where c.Name.StartsWith("A")
                select c;

var 多结果集存储过程 = ctx.sp_multiresultset();
            var Customer = 多结果集存储过程.GetResult<Customers>();
            var Employees = 多结果集存储过程.GetResult<Employee>();

Linq的基础2的更多相关文章

  1. LinQ 语法基础

    LINQ (Language-Integrated Query,语言集成查询). LINQ to Objects.LINQ to SQL.LINQ to DataSet和LINQ to XML,它们分 ...

  2. C#语法之Linq查询基础二

    上篇C#语法之Linq查询基础一基本把Linq介绍了一下,这篇主要是列举下它的几个常见用法. 在用之前先准备些数据,新建了两个类Student.Score,并通过静态方法提供数据. using Sys ...

  3. LINQ查询基础

    一.什么是LINQ LINQ是Language Integrate Query的缩写,意为语言集成查询,是微软在.Net Framework 4.5版中推出的主要特性之一. 它为开发人员提供了统一的数 ...

  4. C#语法之Linq查询基础一

    Linq做.Net开发的应该都用过,有些地方很复杂的逻辑用Linq很方便的解决.对于Linq to object.Linq to xml.Linq to sql.Linq to Entity(EF)都 ...

  5. Linq 操作基础

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

  6. Linq一 基础知识

    1.什么是Linq 他是VS2008(.net framework 3.5)之后一项重大的突破 全程Lnaguage Integrated Query,可以成为数据迭代器. 主要有以下5大块组成: L ...

  7. Linq语句基础

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. LINQ的基础使用方法

    //新建一个项目 //项目下新建一个App_Code文件夹 //在文件夹内添加一个LINQ TO SQL,这个操作就相当于创建了一个实体类 //连接数据库后把表拖入到服务器资源管理器中 //创建数据访 ...

  9. [.net 面向对象编程基础] (19) LINQ基础

    [.net 面向对象编程基础] (19)  LINQ基础 上两节我们介绍了.net的数组.集合和泛型.我们说到,数组是从以前编程语言延伸过来的一种引用类型,采用事先定义长度分配存储区域的方式.而集合是 ...

随机推荐

  1. 在mac中导入hadoop2.6.0源代码至eclipse

    一.环境准备 1.安装jdk.maven等 2.下载hadoop源代码,并解压 3.将tools.jar复制到Classes中,具体原因见http://wiki.apache.org/hadoop/H ...

  2. php中的时区设置

    date_default_timezone_set('PRC'); 设置为中国时区

  3. python学习第四天 --字符编码 与格式化及其字符串切片

    字符编码 与格式化 第三天已经知道了字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采 ...

  4. 函数:Python的乐高积木 - 零基础入门学习Python017

    函数:Python的乐高积木 让编程改变世界 Change the world by program 相信大家小时候应该都玩过神奇的乐高积木,只要通过想象和创意,我们可以用它拼凑出很多神奇的东西. 随 ...

  5. ReactiveCocoa v2.5 源码解析 之 架构总览

    ReactiveCocoa 是一个 iOS 中的函数式响应式编程框架,它受 Functional Reactive Programming 的启发,是 Justin Spahr-Summers 和 J ...

  6. 2013第46周四xml作为WS两端中间测试文件

    今天又到了11点多才开始写随笔记录,有点惭愧,加班回来到现在已经近2小时了,而我此刻才进入正题,之前的时间都跟MM聊天了,或许是单身久了,居然在个人情感方面感觉自己很out了,不想这些了,重点是回顾下 ...

  7. 游标的使用实例(Sqlserver版本)

    游标,如果是之前给我说这个概念,我的脑子有二个想法:1.你牛:2.我不会 不会不是理由,更不是借口,于是便要学习,本人属性喜欢看代码,不喜欢看书的人,所以嘛,文字对我没有吸引力:闲话少说啊,给大家提供 ...

  8. python高级编程 编写一个包1

    #目的是:编写,发行python包可重复过程"""1:是缩短开始真正工作之前所需要的设置时间,也就是提供模板2:提供编写包的标准化方法3:简化测试驱动开发方法的使用4:为 ...

  9. Fabricate equation(dfs + 模拟)

    Fabricate equation Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Other ...

  10. form表单提交校验

    <form id="myForm" action="http://www.365mini.com" method="post"> ...