LINQ(读音link)表明语言集成查询(Language Integrated Query),是.NEt框架的扩展,它容许咱们用SQL查询数据库的方式来查询数据的集合,使用它,你能够从数据库、程序对象的集合以及XML文档中查询数据数据库
let子句 | let子句接受一个表达式的运算而且把它赋值给一个须要在其余运算中使用的标识符,它是from...let...where片断中的一部分框架
|
||||||||||||||||||||||||
from子句 | from子句指定了要做为数据源使用的数据集合,它的语法是:spa
其中Type是集合中元素的类型,是可选的,由于编译器能够从集合来推断类型。 Item是迭代变量的名字。 Items是要查询的集合的名字,必须是可枚举类型的.net 它和foreach比较类似,但foreach语句在遇到代码时就执行其主体,二from子句什么也不执行。它建立能够执行的后台代码对象,只有在程序的控制流遇到访问查询变量的语句时才会执行code |
||||||||||||||||||||||||
join子句 | 若是您对SQL中的join比较熟悉的话,那么LINQ中的join对你来讲也不是什么难事,不熟悉的话,,当我没说。htm 咱们可使用join来结合两个或更多集合中的数据,它接受两个集合而后建立一个临时的对象集合对象
equals用于比较相等性的字段,不能使用“==”代替,下面示例中有三个学生和三门课程,咱们要作的是查找选修了历史课的学生名排序
输出 jack flemingci 讲解一下查询过程:它会依次使用student中的对象与course中的全部对象进行对比,查找是否符合 s.stId equals c.stId where c.courseName == "history" 要求。文档
即先将(1,jack)和(1,art),(2,art)...(3,physics)分别匹配,而后再(2,taylor)和(1,art),(2,art)...(3,physics),直到全部都匹配完,最终能够找到两条能够匹配的结果 |
||||||||||||||||||||||||
where子句 | where子句根据以后的运算来除去不符合要求的项,一个查询表达式能够有任意多个where子句,一个项必须知足全部的where条件才能避免被过滤,其语法为
前面的例子已经屡次用过where,这里就不举例了 |
||||||||||||||||||||||||
orderby子句 | orderby能够很方便的将返回的数据进行排序,可选ascending和descending两种方式,默认的是ascending 语法: orderby Expression ascending or descending 二选一 为join子句中的例子增长一个orderby子句,返回结果就变成了 fleming jack
|
||||||||||||||||||||||||
group子句 | group子句可让你把select的结果按指定的键(key)进行分组 ,每个分组由一个叫作键的字段区分,分组自己是可枚举类型的而且能够枚举它的项
|
||||||||||||||||||||||||
select子句 | select子句指定所选定的对象哪部分应该被选择。能够指定下面的任意一项 a: 整个数据项 b: 数据项的一个字段 c: 数据项中几个字段组成的新对象(或相似其余值)
|
||||||||||||||||||||||||
查询延续: into子句 | 查询延续子句能够接受查询的一部分结构并赋予一个名字,从而能够在查询的另外一部分中使用
|
||||||||||||||||||||||||
end