刚刚接触Linq,就查看关于单词缩写,从Msdn上看到关于它简短英文官方介绍:
传统上, 查询数据的语句是一些简单的字符串, 它没有编译时的类型检查或智能感知的支持, 并且, 你每换一种数据源, 你就得学习一种新的查询语言: SQL 数据库, XML 文档, 各种各样的web 服务, 等等. LINQ 是最优秀的查询语言, 它内嵌于C# 和VB. 当你编写查询语句时, 你可以使用熟悉的关键字和操作符在强类型的对象集合上编写查询, 下面的示例展示了一个不完整的在SQL Server 数据库上的LINQ 查询, 用C# 语法 , 它拥有完全的类型检查和智能感知支持.
从上面看来Linq是集成于.NET3.5版本,全称基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等组成了强大的LINQ。
其实究其历史在2005年的微软开发者大会上,Anders Hejlsberg和他的开发团队,提出了一个新的,用于整合各种信息源索引的方式。简单的说Linq给Net Framework添加了一些方便的索引各种数据源的特性。包括Linq to sql,Linq to xml,Linq to objects,Linq to dataset,Linq to entitis等。其中Linq to sql是基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。是最吸引我的一部分。Linq to objects可以让我们像写T-sql语句一样,方便的查询一个Object.在Linq中涉及到3.0版本的新特性,在Nathan的技术追逐之路博客上看到一个事例Demo很不错引用过来,
- //写一个简单的实体类
- public static Class Teacher
- {
- public string Teachername{get;set;};
- public string Sex{get;set;}
- //定义构造方法
- public Teacher()
- {
- }
- }
则在3.0版本下利用新特性和Linq来编写代码:
- var TeacherList=new List<Teacher>{
- new Teacher{Teachername="chenkaige",Sex="meal"},
- new Teacher{Teachername="Honghuang",Sex="fmeal"},
- new Teacher{Teachername="Zhangyimou",Sex="meal"}
- };
- //使用Linq代码 有点写Sql语句感觉
- var selectperson = from p in Teacher where p.Teachername= "chenkaige" select p.Sex.ToUpper();
- //打印结果
- foreach(var Result in selectperson)
- {
- Response.write(Result+"<Br/>");
- }
代码输出结果是:CHENKAIGE换行MEAL,感觉到Linq使用的强大的吧。上面是针对对象的使用,同样可以像写普通的C#代码一样操作Xml Document和DataSet,这样比以前总是写数据库连接要省事的多。
微软不断更新版本,目的是让我们程序员能够把更多的精力用到业务上,除去不必要的精力浪费,其中牵扯到.net3.0的新特性将做以总结。声明编辑器版本是Vs2008支持.net3.0.
本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765534