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等),才会真正去执行计算任务。
 
posted @ 2018-01-30 11:28  shengyu_kmust  阅读(511)  评论(0编辑  收藏  举报