LINQ概念学习

来源:互联网 发布:域名绑定到空间 编辑:程序博客网 时间:2024/05/22 04:50

1、LINQ不是ORM,但是LINQ To SQL是

2、LINQ!=LINQ to SQL

 

LINQ是语言(Language)中集成(Integrate)查询(Query)的缩写,是C# 3.0和VB 9.0中新加入的语言特性,可以在编程时使用内置的查询语言进行基于集合的操作。这么做可以大大简化开发过程,提高开发效率

List  userList  =  GetUserList ();  
var userWithOddId = from u in userList where u.UserID % 2 == 1 select u;
foreach (User u in userWithOddId) {
Console.WriteLine(u.UserName);
}

 

LINQ to SQL是.NET 3.5内置的一个轻量级O/R Mapping解决方案,可以将数据表映射为实体对象,方便开发人员对数据库的操作。可见,LINQ to SQL实只是LINQ的一个实现,提供了一个可以查询SQL Server数据库的LINQ Provider。

 

LINQ Provider是LINQ 查询的执行器,标准LINQ语法支持许多的操作符,但是某个具体的LINQ实现可能只支持其中的一部分。在.NET 3.5默认提供了三种LINQ Provider,分别是LINQ to Object(即上面的例子),LINQ to SQL以及LINQ to XML。

 

LINQ to XXX表示使用LINQ针对XXX这种数据进行查询的解决方案。我们可以自定义LINQ Provider,使用我们自定义的查询规则来处理特定数据集。目前互联网上已经可以找到数十种LINQ Provider(如LINQ to Flickr,LINQ to NHibernate等),而已经处于beta 3阶段的ADO.NET Entity Framework,最终也会提供一个LINQ Provider,叫做“LINQ to Entities”。以上介绍LINQ ORM。