LINQ 提供程序
.NET 包含几个LINQ提供程序
- LINQ 提供程序:
- 为特定的数据源,实现了标准的查询操作符
- 至少要实现标准操作符
- 也许会实现比LINQ定义的更多的扩展方法
- 例如:LINQ to XML 实现了一些专门用于XML的方法
Elements()
Descendant()
Ancestors()
- 例如:LINQ to XML 实现了一些专门用于XML的方法
LINQ提供程序的实现方案,是根据命名空间和第一个参数的类型来选择的 例如,如何选择用哪一个Where()方法:
- LINQ to Objects中,
Enumerable
类里的Where()
扩展方法:public static IEnumerable<TSource> Where(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
- LINQ to Entities中,
Queryable<T>
类定义的Where()
扩展方法:public static IQueryable<TSource> Where(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
两个Where()
方法都在System.Core程序集中,都在System.Linq命名空间中
编译器是根据第一个参数是IEnumerable<TSource>
,还是IQueryable<TSource>
来选择使用哪一个Where()方法的
第三方的LINQ提供程序
- LINQ to MySQL
- LINQ to Amazon
- LINQ to Flickr
- LINQ to LDAP
- LINQ to SharePoint
无论什么数据源,都可以通过LINQ使用相同的查询语法