剛剛接觸Linq,就查看關於單詞縮寫,從Msdn上看到關於它簡短英文官方介紹:程序員
傳統上, 查詢數據的語句是一些簡單的字符串, 它沒有編譯時的類型檢查或智能感知的支持, 而且, 你每換一種數據源, 你就得學習一種新的查詢語言: SQL 數據庫, XML 文檔, 各類各樣的web 服務, 等等. LINQ 是最優秀的查詢語言, 它內嵌於C# 和VB. 當你編寫查詢語句時, 你可使用熟悉的關鍵字和操做符在強類型的對象集合上編寫查詢, 下面的示例展現了一個不完整的在SQL Server 數據庫上的LINQ 查詢, 用C# 語法 , 它擁有徹底的類型檢查和智能感知支持.web
從上面看來Linq是集成於.NET3.5版本,全稱基於關係數據的 .NET 語言集成查詢,用於以對象形式管理關係數據,並提供了豐富的查詢功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等組成了強大的LINQ。sql
其實究其歷史在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來編寫代碼:express
- 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.ide