2010-12-23 13:17 張昌龍/辛永平 機(jī)械工業(yè)出版社
字號(hào): |
綜合評(píng)級(jí):
想讀(1) 在讀(2) 已讀(1) 品書齋鑒(0) 已有4人發(fā)表書評(píng)《ASP.NET 4.0從入門到精通》第3章C# 4.0語言特色,本章討論在C# 4.0語言中許多增強(qiáng)的功能。首先介紹隱式類型聲明,由編譯器根據(jù)上下文進(jìn)行類型推斷,接下來討論使用自動(dòng)屬性功能簡化編寫重復(fù)性的屬性代碼。對(duì)象初始化器可以簡化開發(fā)人員的賦值代碼,接下來討論如何對(duì)一個(gè)現(xiàn)有類進(jìn)行擴(kuò)展的擴(kuò)展方法。本節(jié)為大家介紹什么是LINQ。
AD:
51CTO首屆中國APP創(chuàng)新評(píng)選大賽正在招募>>3.8 LINQ簡介
LINQ又稱為語言集成查詢。在本章中,筆者只打算簡要地討論一下什么是LINQ查詢,在第17章,將使用一整章的篇幅來詳細(xì)介紹LINQ技術(shù)。
語言集成查詢讓開發(fā)人員可以使用.NET程序語言(如C#)去查詢數(shù)據(jù)源,比如內(nèi)存中的集合對(duì)象、數(shù)據(jù)庫中的表、XML、DataSet等,開發(fā)人員不用去分門別類地學(xué)習(xí)眾多的查詢語法就可以輕松地查詢異構(gòu)數(shù)據(jù)源。
3.8.1 什么是LINQ
先來看一個(gè)使用LINQ查詢的例子。C#代碼如下所示:
var query=form e in employees
select e.name
乍一看,這段代碼似乎與SQL查詢語句類似。這段代碼的作用是查詢employees表中字段為name的數(shù)據(jù),類似的SQL語句如下:
Select name from employees
LINQ的目標(biāo)是讓開發(fā)人員使用熟悉的語言如C#、VB.NET訪問數(shù)據(jù)庫,而不用去管底層數(shù)據(jù)庫的細(xì)節(jié)。比如底層到底是Oracle還是SQL Server,這些都不用在乎。LINQ提供了豐富的指令來實(shí)現(xiàn)復(fù)雜的查詢,比如數(shù)據(jù)聚合、聯(lián)合查詢、排序等。LINQ除了能查詢數(shù)據(jù)之外,還可以執(zhí)行添加、修改、刪除等操作。
下面列出了使用LINQ的幾個(gè)好處:
LINQ簡化了訪問數(shù)據(jù)的方式,只要熟悉了C#或VB.NET,就可以使用LINQ來操作數(shù)據(jù),甚至不需要掌握SQL或者是PL/SQL。
LINQ統(tǒng)一了查詢?nèi)魏螖?shù)據(jù)的語法??梢允褂孟嗤恼Z法查詢XML文檔或者是SQL數(shù)據(jù)庫、ADO.NET數(shù)據(jù)集以及內(nèi)存集合等。
LINQ強(qiáng)化了關(guān)系型數(shù)據(jù)與面向?qū)ο笫澜缰g的聯(lián)系。
LINQ加快了開發(fā)時(shí)間,可以使用編譯時(shí)錯(cuò)誤捕捉、智能提示和調(diào)試支持。
圖3.22顯示了LINQ功能性的概要。
(點(diǎn)擊查看大圖)圖3.22 LINQ功能概覽
在圖3.22中,可以看到LINQ允許的數(shù)據(jù)源,可分為三大類:LIN to Objects、LIN to ADO.NET以及LIN to XML,還有更多的數(shù)據(jù)源正在實(shí)現(xiàn)中,比如開源社區(qū)創(chuàng)建的LIN to Nhibernate、LIN to LDAP等。
下面對(duì)這三大類LINQ的組成部分進(jìn)行簡要介紹:
LIN to Objects:可以從任何實(shí)現(xiàn)了IEnumerable<T>接口的對(duì)象中查詢數(shù)據(jù)。
LIN to ADO.NET:增強(qiáng)了LIN to Objects,可以訪問關(guān)系型數(shù)據(jù)庫。從圖3.22中可以看到,其主要由三個(gè)部分組成:LIN to SQL(以前又稱為DLinq),用于查詢關(guān)系型數(shù)據(jù)庫,例如SQL Server;LIN to Datasets支持查詢DataSet或DataTable;LIN to Entities是Microsoft ORM解決方案,允許開發(fā)人員使用實(shí)體(Entities)聲明性地指定商業(yè)對(duì)象(business objects)的結(jié)構(gòu),并且使用LINQ進(jìn)行查詢。
LIN to XML(以前稱為XLinq),不僅包括LIN to Objects的功能,還可以查詢和創(chuàng)建XML文檔。