初識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# 語法 , 它擁有徹底的類型檢查和智能感知支持.web

從上面看來Linq是集成於.NET3.5版本,全稱基於關係數據的 .NET 語言集成查詢,用於以對象形式管理關係數據,並提供了豐富的查詢功能,它和Linq to xmlLinq to objectsLinq to datasetLinq to entities等組成了強大的LINQsql

其實究其歷史在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來編寫代碼:express

  
  
  
  
  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.ide

相關文章
相關標籤/搜索