Linq查询

    在.NET Framework 3.5中提供了LINQ 支持后,LINQ就以其强大而优雅的编程方式赢得了开发人员的喜爱,而各种LINQ Provider更是满天飞, 如LINQ to NHibernate、LINQ to Google等,大有“一切皆LINQ”的趋势。

  linq是面向对象的sql。

  也就是说,sql是向关系型数据库的查询,而linq实际上是对内存里的数据的查询。 虽然linq原来是对象查询,但经过ms的努力,可以通过表达式分析与实体到关系的映射(linq to sql),把linq转换为sql语句或是对xml的查询(linq to xml)。

  因此,这种技术就成了对象到数据库记录的一个方便的映射、转化与操作的工具,你再也不必去去根据不同的情况用字符串拼接的办法生成sql,而是专心于对象模型的处理即可,你对于对象的修改最终都会被转换为对应的update, insert, delete等sql语句,在你submit时全部提交到数据库中。

 

综尔言之,linq to sql是一个数据库到对象结构的一个中间层, 他把对关系数据的管理转变为对象的操作,屏蔽了麻烦的sql,而且,还可以得到vs强大的智能感知功能的帮助。

 

     Linq技术专题

1.基础概念

       从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及order by(C#中)。使用这些操作符可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。

 

2.基础知识

 

LINQ的关键词:        from, select, in, where, group by, orderby, …
 
LINQ的写法:
                                1)from 临时变量 in 实现IEnumerable<T>接口的对象
                                 where条件表达式
         [orderby条件]
         [group by 条件]
         select 临时变量中被查询的值
                                2) 实现IEnumerable<T>接口的对象.LINQ方法名(lambda表达式)。如:
         string input = "hellow world";
         int count = input.Count(w=>w == 'o'); //查询字母o出现的次数
         能够使用LINQ的对象需要实现IEnumerable<T>接口。并且LINQ的查询表达式是在最近一次创建对象时才被编译的。

     LINQ的注意点:   必须以select或者是group by 结束。

LINQ的分类:         LINQ to Object, LINQ to XML, LINQ to SQL, LINQ to ADO.NET
 
LINQ的语义:         from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件]
                                (临时变量是in后面类型的变量)
LINQ的查询返回值的类型是临时变量的类型,可能是一个对象也可能是一个集合。并且LINQ的查询表达式是在最近一次创建对象时才被编译的。LINQ的查询一般跟var关键字一起联用  。
IEnumerable<string> highScoresQuery2 =
    from score in scores
    where score > 80
    orderby score descending
    select String.Format("The score is {0}", score);

 

 
命名空间:    System.Linq;

 

 

posted on 2013-12-07 11:21  飞鸟快跑  阅读(322)  评论(0编辑  收藏  举报