Linq 基础知识
Linq 解释:(Language-Integrated Query )语言集成查询,最大的特点就是能够把查询功能直接引入到.NET Framework.3.5 所支持的编程语言中(C#,VB.NET 等)中。
Linq 基本组成组件:
(1) LINQ To SQL
组件: 可以查询基于关系数据库的数据,并对数据进行检索、添加、修改、删除、分区、排序、聚合等操作。
(2) LINQ To DataSet
组件: 可以查询DataSet 对象中的数据,并对数据进行刷选、排序等操作。
(3) LINQ To Object
组件:可以查询Ienumberable 或Ienumberable<T> 集合,即可查询任何可枚举的集合。如数组、集合、字典、泛型列表。
(4) LINQ To XML
组件:可以查询或操作XML 结构的数据.
Linq 命名空间:
(1) System.Linq
命名空间,可以支持使用LINQ 进行查询的类和接口,
(2) Ssystem.Data.Linq
命名空间,提供与Linq To SQL 相关的类、结构、接口和枚举。
(3) System.Xml.Linq
命名空间,提供与Linq To XML 相关的类和枚举。
Linq 查询字句:
from 子句:制定查询操作的数据源和范围变量(var users=from u in user select u; )
where 子句: 筛选元素的逻辑查询。(var users=from u in user where u.userid<1000 select u; )
select 子句:指定查询结果的类型和变现形式,查询表达式一般以select 或groupby 结束(var user=from u in user join r in role on u.roleid equals r.roleid select new{u.username,r.rolename};
orderby 子句: 对查询结果进行排序(var users=form u in user order u.userid by ascentding(descending)select u;)
group 子句: 对查询结果分组(var users=from u in user group u by u.username )
into 子句: 提供一个临时标识符,该标识符可以充当对Join,group,select 子句的结果引用
(var user_role=from u in user
join r in role on u.roleid equals r.roleid into g
select new{u.userid,u.username,g.ToList()};
Join 子句:链接多个查询操作的数据源(var user=from u in user join r in role on u.roleid equals r.roleid select u; )
Let 子句:引入用于存储查询表达式中的子表达式结果的范围变量(var users=from u in user let num=u.id Where u.userid>1000 && num<10000 select u; )
Linq
Linq
(1)
(2)
(3)
(4)
Linq
(1)
(2)
(3)
Linq
from
where
select
orderby
group
into
(var user_role=from u in user
join r in role on u.roleid equals r.roleid into g
select new{u.userid,u.username,g.ToList()};
Join
Let