zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    IIS7开启目录浏览功能
    IIS7文件无法下载问题处理
    Dubbo端口占用错误信息
    PlSqlDev中执行INSERT SQL语句包含&符号导致数据异常
    VMWare版本兼容问题处理
    手动释放Linux内存
    ORA-00972_标识符过长
    通过API获取统计信息时报Access denied错误处理记录
    微信小程序中跳转另一个小程序
    css怎样去掉多个Img标签之间的间隙
  • 原文地址:https://www.cnblogs.com/tech-bird/p/3462589.html
Copyright © 2011-2022 走看看