zoukankan      html  css  js  c++  java
  • linq简介

    定义
      语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称,可总结为linq=c#+sql。
    优势
    可用类似于数据库查询语言的方式去操作c#的对象。在linq出来之前,对象的很多操作都要自己去写方法和逻辑(如排序,过滤,分组等),而用linq往往只要一句话就可以完成之前几十行代码的功能!
    写法
      分查询语法和方法语法
      查询语法:var query=from user in users where user.Name=='周晶' select user;
      方法语句:var query=users.where(user=>user.Name=='周晶').select(user=>user)
    开发和学习中的陷阱
      linq分linq to objects,linq to xml,linq to ado.net。三都的底层技术原理是不一样的,所以同样的写法可能在linq to objects会正常但在linq to ado.net时就不正常。
    几点建议
      复杂的查询用查询语法,简单的查询用方法语法。
    什么样的数据源能用linq技术?
      只要是实现 IEnumerable<T> 或 IQueryable<T> 接口的数据源都可以用。
     
    查询表达式的语法
      查询表达式必须以 from 子句开头,且必须以 select 或 group 子句结尾。 在第一个 from 子句与最后一个 select 或 group 子句之间,可以包含以下这些可选子句中的一个或多个:whereorderbyjoinlet,甚至是其他 from 子句。 还可以使用 into 关键字,使 join 或 group 子句的结果可以充当相同查询表达式中的其他查询子句的源。
      
    其它
      查询表达式可被编译成表达式树或委托,具体视应用查询的类型而定。IEnumerable<T> 查询编译为委托。 IQueryable 和 IQueryable<T> 查询编译为表达式树。
    创建查询表达式时,并不会有什么计算的开销,只有在foreach或是其它的计算结果的语句执行时(如count,max等),才会真正去执行计算任务。
     
  • 相关阅读:
    python每日作业4/21
    socket实现并发之socketserver模块的使用
    python socket粘包问题的解决
    每日作业:4/20
    网络编程基础(socket)
    网络基础之网络协议
    异常处理
    python 作业4/15
    centos7简单安装配置mariadb
    Centos7下Firewalld防火墙配置命令
  • 原文地址:https://www.cnblogs.com/shengyu-kmust/p/linq.html
Copyright © 2011-2022 走看看