初识LinQ(1)-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

初识LinQ(1)

简介:

刚刚接触Linq,就查看关于单词缩写,从Msdn上看到关于它简短英文官方介绍:

Language-Integrated Query (LINQ) is a groundbreaking innovation in Visual Studio 2008 and the .NET Framework version 3.5 that bridges the gap between the world of objects and the world of data.
Traditionally, queries against data are expressed as simple strings without type checking at compile time or IntelliSense support. Furthermore, you have to learn a different query language for each type of data source: SQL databases, XML documents, various Web services, and so on. LINQ makes a query a first-class language construct in C# and Visual Basic. You write queries against strongly typed collections of objects by using language keywords and familiar operators. The following illustration shows a partially-completed LINQ query against a SQL Server database in C# with full type checking and IntelliSense support.
简短翻译如下:
语言集成查询(LINQ)是一个颠覆性的创新, 它随着VS2008和.net framework 3.5 一起发布. 它填平了对象世界与数据世界之间的鸿沟.

传统上, 查询数据的语句是一些简单的字符串, 它没有编译时的类型检查或智能感知的支持, 并且, 你每换一种数据源, 你就得学习一种新的查询语言: SQL 数据库, XML 文档, 各种各样的web 服务, 等等. LINQ 是最优秀的查询语言, 它内嵌于C# 和VB. 当你编写查询语句时, 你可以使用熟悉的关键字和操作符在强类型的对象集合上编写查询, 下面的示例展示了一个不完整的在SQL Server 数据库上的LINQ 查询, 用C# 语法 , 它拥有完全的类型检查和智能感知支持.

从上面看来Linq是集成于.NET3.5版本,全称基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xmlLinq to objectsLinq to datasetLinq 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很不错引用过来,


  1. //写一个简单的实体类  
  2. public static Class Teacher  
  3. {  
  4.      public string Teachername{get;set;};  
  5.      public string Sex{get;set;}  
  6.        
  7.      //定义构造方法  
  8.       public Teacher()  
  9.      {  
  10.          
  11.      }  

则在3.0版本下利用新特性和Linq来编写代码:


  1. var TeacherList=new List<Teacher>{  
  2.  new Teacher{Teachername="chenkaige",Sex="meal"},  
  3.  new Teacher{Teachername="Honghuang",Sex="fmeal"},  
  4.  new Teacher{Teachername="Zhangyimou",Sex="meal"}  
  5.  };  
  6.  
  7. //使用Linq代码 有点写Sql语句感觉  
  8. var selectperson = from p in Teacher where p.Teachername= "chenkaige" select p.Sex.ToUpper();  
  9.  
  10. //打印结果  
  11. foreach(var Result in selectperson)  
  12. {  
  13.   Response.write(Result+"<Br/>");  

代码输出结果是:CHENKAIGE换行MEAL,感觉到Linq使用的强大的吧。上面是针对对象的使用,同样可以像写普通的C#代码一样操作Xml Document和DataSet,这样比以前总是写数据库连接要省事的多。

微软不断更新版本,目的是让我们程序员能够把更多的精力用到业务上,除去不必要的精力浪费,其中牵扯到.net3.0的新特性将做以总结。声明编辑器版本是Vs2008支持.net3.0.

本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765534



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章