在.net类库中,LINQ相关类库都在System.Linq命名空间下。该命名空间提供支持使用LINQ进行查询的类和接口,其中最重要的是两个类和两个接口。
- IEnumerable<T>接口:它表示可以查询的数据集合,一个查询通常是逐个对集合中的元素进行筛选操作,返回一个新的IEnumerable<T>对象,用来保存查询结果。
- IQuerable<T>接口:它继承IEumerable<T>接口,表示一个可以查询的表达式目录树。
- Enumerable类,它通过对IEnumerable<T>提供扩展方法,实现LINQ标准查询运算符。包括过滤、导航、排序、查询、联接、求和、求最大值、求最小值等操作。
- Queryable类:它通过对IQueryable<T>提供扩展方法,实现LINQ标准查询运算符。包括过滤、导航、排序、查询、联接、求和、求最大值、求最小值等操作。
根据数据源类型,可以将LINQ技术分成如下所述的4个主要技术方向。
- LINQ to Object:数据源为实现了接口IEnumerable<T>或IQeryable<T>的内存数据集合,这也是LINQ的基础。
- LINQ to ADO.NET:数据源为ADO.NET数据集,这里将数据库中的表结构映射到类结构,并通过ADO.NET从数据库中获取到数据集到内存中,通过LINQ进行数据查询。
- LINQ to XML:数据源为XML文档,这里通过XElement、XAttribute等类将XML文档数据加载到内存中,通过LINQ进行数据查询。
除了这3种常见的数据类型外,.NET3.5还为用户扩展LINQ提供了支持,用户可以根据需要实现第三方的LINQ支持程序,然后通过LINQ获取自定义的数据源。
Untitled Page
作者:深山老林
出处:http://wlb.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。