初识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



相关文章
|
机器学习/深度学习 监控 Web App开发
SLS机器学习最佳实战:根因分析(一)
通过算法,快速定位到某个宏观异常在微观粒度的具体表现形式,能够更好的帮助运营同学和运维同学分析大量异常,降低问题定位的时间。
13264 0
|
监控 Linux 数据安全/隐私保护
IPMI介绍
IPMI简要介绍
7959 0
|
9月前
|
机器学习/深度学习 SQL 边缘计算
为襄阳职业技术学院最新推出的DeepSeek-R1-fix-XYTC:0908、DeepSeek-R1-fix-XYTC、Qwen-MAX-XYTC及DeepSeek-R1-XYTC多模态模型家族
本文档详细介绍了张永豪与联合库UNHub为襄阳职业技术学院开发的四款核心NLP模型架构,包括DeepSeek-R1-fix-XYTC:0908、DeepSeek-R1-fix-XYTC、Qwen-MAX-XYTC及DeepSeek-R1-XYTC。基于Transformer架构优化,各模型在响应延迟、知识检索和推理深度上各有侧重,适用于不同场景。文档提供了完整的架构参考、性能对比及使用建议,并附有API调用示例。建议每季度更新性能指标,确保最佳应用效果。
294 16
|
SQL Oracle 关系型数据库
Navicat
【8月更文挑战第28天】Navicat
454 4
|
机器学习/深度学习 人工智能 程序员
程序员裁员潮:技术变革下的职业危机
技术变革下程序员面临的裁员潮及其影响,并提供了应对策略。
355 0
|
Shell 网络安全 开发工具
fatal: unable to access 'https://github.com/wolfcw/libfaketime.git/': Encountered end of file
fatal: unable to access 'https://github.com/wolfcw/libfaketime.git/': Encountered end of file
|
存储 并行计算 编译器
面向 C++ 的现代 CMake 教程(二)(3)
面向 C++ 的现代 CMake 教程(二)
267 1
|
监控 测试技术
APP的稳定性测试如何做?
APP的稳定性测试如何做?
1114 1
33.从入门到精通:Python3 正则表达式 re.match函数 re.search方法 re.match与re.search的区别
33.从入门到精通:Python3 正则表达式 re.match函数 re.search方法 re.match与re.search的区别

热门文章

最新文章