LinqToSql開發實踐之認識LinqToSql

2022-01-19 15:39:28 字數 2308 閱讀 7260

原文:

一、linq是什麼

linq何許神也?msdn中有這麼一段話:語言整合查詢 (linq) 是 visual studio 2008 和 .net framework 3.5 版中一項突破性的創新,它在物件領域和資料領域之間架起了一座橋梁。

突破性的創新,這個稱號確實讓人一驚,呵呵。linq是language integrated query的英文縮寫,從這串英文可以看出linq是語言,是一種整合的查詢語言。目前微軟提供的庫中已經支援了:linq to objects、linq to xml、 linq to datasets、linq to sql以及新近推出的linq to entites。

linq通過定義一套查詢操作符結合.net freamwork實現了強大的查詢功能,為此微軟也為linq新增了相應的命名空間以使開發者能夠非常簡單的應用linq的強大功能。

二、linqtosql是什麼

本文討論的是linqtosql,主要是因為在專案中用到了linqtosql,也體會到了其強大的功能同時也感到了它許多的不足。而linqtosql又是最貼近於現有的一些關係型資料庫軟體系統的應用。所以以linqtosql來學習和掌握linq是個不錯的選擇。

linqtosql就是基於關係型資料庫的整合查詢,用於以物件的形式管理及查詢關係型資料庫。換言之,可以不寫sql就能實現對資料庫的管理及查詢,說的有些懸!~~

目前linqtosql僅支援了微軟的sqlserver資料庫,也可以說是個半成品,也正是如此在實際開發中會有一些擴充套件要求,當然,對於一些簡單的資料庫軟體系統linqtosql還是基本滿足要求的。

在linqtosql中有乙個非常重要的成員:datacontext(資料上下文)。這個東東是linqtosql用於處理資料來來去去的核心,其負責了從linq查詢翻譯成sql語句的過程,並且負責了資料的載入填充。

另乙個重要的成員:實體類。在資料庫中會存在著資料表、檢視、儲存過程、函式等等等等,linq是基於物件查詢的,也就是必須是強型別的資料操作。所以linqtosql必須將這些資料庫中的罈罈罐罐都型別化,微軟定義了乙個dbml檔案,用於實現物件與資料庫物件的對映,這個對映就是實體類,linqtosql通過這個對映達到了與資料庫之間的互動。當然微軟也開發了可視工具,生成實體的時候非常的簡單。

三、使用linqtosql需要什麼

想要用linqtosql開發程式,必備的東西還是要有的:

1、vs2008(最好是打上sp1吧)

2、.net freamwork3.5(最好是打上sp1)

3、mssqlserver(2000/2005/2008)

4、會c#、vb.net

5、還有看書和實踐的能力

要求不高吧,微軟的東西相對來說做的還是非常易用,接下舉個例子你就寫出乙個linqtosql的第乙個程式了,讓我們開始吧。

四、試試吧

請把各種裝備都搞定,再繼續下面的步驟,我是用c#寫的:

1、建立乙個c#console工程,取名為:ohtestlinq

2、然後向工程中新增新建項,在列表中選擇「linq to sql 類」,如下圖:

點選「伺服器資源管理器」,建立乙個資料庫連線,就直接連線到sqlserver的自帶資料庫「northwind」。展開連線中的表,然後選中全部的表:

用滑鼠拖到dbml中去,資料表就會生成在dbml中了。

4、好了,這樣資料庫與linqtosql的對映工作就做好了,資料庫鏈結和上下文類以及實體類的**都已經自動生成,接下來就可以使用linqtosql的強大功能來做資料操作了:

開啟program.cs檔案,寫下面的**:

class program

console.read();}}

這段**是查詢了來自london這個城市的客戶,並顯示了這些客戶的公司名稱,按下f5,輸入出結果如下:

是不是很簡單?這過程中沒有寫一行sql語句就實現了資料的查詢,但是你會發現有一句**很像sql:

var customs = from cust in db.customers

where cust.city == "london"

select cust;

這就是linq的查詢語法,和sql很相近,但是又有區別,最特別的是select出現在了最後面。事實上這個寫法更貼近於真實的sql執行過程,這個以後我找機會寫文章介紹。

五、結束語

出處:

Linq to Sql之簡單應用

1,普通方式 增刪改查 新增資料 li new linq.linq i tabledatacontext 例項化乙個表,並繫結資料 linq.i table ii new linq.i table ii.i type typetext.value ii.i fund fundtext.value l...

Linq to SQL之查詢和新增

本文以northwind資料庫中的customers和orders表為例說明linq to sql的查詢和新增是怎樣操作的。首先通過linq to sql file嚮導建立datacontext以及相應的entity class,如果不知道怎樣做請看這裡 defining data model cl...

linqToSql之聯合主鍵的運用

多個關聯表聯合查詢時,如何決定主鍵,以及各表主鍵如何運用 var result from ugu in edatacontext.usergroupuser join us in edatacontext.user on ugu.userid equals us.userid join ug in ...