一步一步学Linq to sql(四):查询语法

原创 2012年03月26日 11:09:36

from 表中的元素 in

where 查询条件

select new{

           new一个新对象的属性

           };


    protected void Page_Load(object sender, EventArgs e)
    {
        linqDBDataContext linqDB = new linqDBDataContext();
        //一、select 
        var result1 = from c in linqDB.Customer
                      select new
                      {
                          名称 = c.Name,
                          城市 = c.City
                      };

        //查询职员的姓名和雇用年份
        var result2 = from emp in linqDB.Employees
                      select new
                      {
                          姓名 = emp.FirstName + emp.LastName,
                          雇佣年 = emp.HireDate.Value.Year
                      };

        var result3 = from c in linqDB.Customers
                      select new
                      {
                          ID = c.CustomerID,
                          联系信息 = new
                          {
                              职位 = c.ContactTitle,
                              联系人 = c.ContactName
                          }
                      };

        //查询订单号和订单是否超重的信息
        var result4 = from o in linqDB.Orders
                      select new
                      {
                          订单号 = o.OrderID,
                          是否超重 = o.Freight > 100 ? "是" : "否"
                      };




        //二、where 
        //要求国家是美国并且订单数大于5
        var result5 = from c in linqDB.Customers
                      where c.Country == "美国" && c.Orders > 5
                      select new
                      {
                          国家 = c.Country,
                          城市 = c.City,
                          订单数 = c.Orders
                      };



        //三、orderby
        // 按照雇用年倒序,按照名正序
        var result6 = from emp in linqDB.Employees
                      orderby emp.HireDate.Value.Year ascending, emp.FirstName descending
                      select new
                      {
                          姓名 = emp.FirstName + emp.LastName,
                          雇佣年 = emp.HireDate.Value.Year
                      };


        //四、分页
        var result7 = (from c in linqDB.Customers select c).Skip(10).Take(10);

        //五、分组
        //根据顾客的国家分组,查询顾客数大于5的国家名和顾客数
        var result8 = from c in linqDB.Customers
                      group c by c.Country into g
                      where g.Count() > 5
                      orderby g.Count() descending
                      select new
                      {
                          国家 = g.Key,
                          顾客数 = g.Count()
                      };

        //根据国家和城市分组,查询顾客覆盖的国家和城市
        var result9 = from c in linqDB.Customers
                      group c by new { c.Country, c.City } into g
                      orderby g.Key.Country, g.Key.City
                      select new
                      {
                          国家 = g.Key.Country,
                          城市 = g.Key.City
                      };

        //按照是否超重条件分组,分别查询订单数量
        var result10 = from o in linqDB.Orders
                       group o by new { 条件 = o.Freight > 100 } into g
                       select new
                       {
                           数量 = g.Count(),
                           是否超重 = g.Key.条件 ? "是" : "否"
                       };

        //六、distinct
        //查询顾客覆盖的国家
        var result11 = (from c in linqDB.Customers orderby c.Country select c.Country).Distinct();
        
        //七、concat 连结
        //查询城市是"旧"打头的顾客和顾客名称包含"小"的顾客,并按照顾客名字排序,相同的顾客信息不会过滤
        var result12 = (from c in linqDB.Customers where c.City.StartsWith("旧") select c).Concat
              (from c in linqDB.Customers where c.ContactName.Contains("小") select c).OrderBy(c => c.ContactName);

        //八、取相交项
        //查询城市是"旧"打头的顾客和顾客名称包含"小"的顾客,的交集,并按照顾客名字排序
        var result13 = (from c in linqDB.Customers where c.City.StartsWith("旧") select c).Intersect
              (from c in linqDB.Customers where c.ContactName.Contains("小") select c).OrderBy(c => c.ContactName);

        //九、排除相交项
        //查询城市是"旧"打头的顾客,并从中删除顾客名称包含"小"的顾客,并按照顾客名字排序
        var result14 = (from c in linqDB.Customers where c.City.StartsWith("旧") select c).Except
           (from c in linqDB.Customers where c.ContactName.Contains("小") select c).OrderBy(c => c.ContactName);

        //十、子查询
        //查询订单数超过1的顾客信息
        var result15 = from c in linqDB.Customers
                       where
                       (from o in linqDB.Orders group o by o.CustomerID into o where o.Count() > 1 select o.Key).Contains(c.CustomerID)
                       select c;

        //十一、in操作
        //描述:查询指定城市中的客户
        var result16 = from c in linqDB.Customers
                       where new string[] { "北京", "旧金山" }.Contains(c.City)
                       select c;

        //十二、join(相当于SQL语句的INNER JOIN)
        //内连接,没有分类的产品查询不到
        var result17 = from l in linqDB.lb
                       join p in linqDB.Products
                       on l.id equals p.lbId
                       select p.ProductsName;

        //十三、
        //外连接,没有分类的产品也能查询到(相当于SQL语句的LEFT JOIN )
        var result18 = from l in linqDB.lb
                       join p in linqDB.Products
                       on l.id equals p.lbId
                       into pro
                       from x in pro.DefaultIfEmpty()
                       select new
                       {
                           l.lbName,
                           x.ProductsName
                       };
        //十四
        //视图
        var result = from v in linqDB.View1
                     select v;
        GridView1.DataSource = result;
        GridView1.DataBind();
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

一步一步学Linq to sql(四):查询句法

select   描述:查询顾客的公司名、地址信息 查询句法: var 构建匿名类型1 = from c in ctx.Customers           ...

一步一步学Linq to sql(四):查询句法

select描述:查询顾客的公司名、地址信息查询句法:var构建匿名类型1 = from c in ctx.Customersselectnew{公司名 = c.CompanyName,地址 = c....

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

一步一步学Linq to sql(四):查询句法

select   描述:查询顾客的公司名、地址信息 查询句法: var 构建匿名类型1 = from c in ctx.Customers           ...

一步一步学Linq to sql(四):查询句法

原文作者链接:http://www.cnblogs.com/lovecherry/archive/2007/08/17/859826.html  select 描述:查询顾客的公司名、地址信息查询句法...

一步一步学Linq to sql(四):查询句法

一步一步学Linq to sql(四):查询句法 作者: lovecherry  来源: 博客园  发布时间: 2008-09-26 22:59  阅读: 33431 次  推荐: 0...

一步一步学Linq to sql(六):探究特性

延迟执行          IQueryable query = from c in ctx.Customers select c;     &...

一步一步学Linq to sql(三):增删改

示例数据库   字段名 字段类型 允许空 字段说明 ID uniqueidentifier   表...

一步一步学Linq to sql(七):并发与事务

测并发          首先使用下面的SQL语句查询数据库的产品表: select * from products where categoryid=1 ...

一步一步学Linq to sql(八):继承与关系

论坛表结构          为了演示继承与关系,我们创建一个论坛数据库,在数据库中创建三个表: 1、  论坛版块分类表 dbo.Categories: 字段名 字段...

一步一步学Linq to sql(二):DataContext与实体

DataContext          DataContext类型(数据上下文)是System.Data.Linq命名空间下的重要类型,用于把查询句法翻译成SQL语句,以及把数据从数据库返回给调...
  • Baple
  • Baple
  • 2011-10-09 16:45
  • 504
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)