新聞中心
在向大家詳細(xì)介紹LinQ to SQL之前,首先讓大家了解下LinQ to SQL四大護(hù)法,以后全面介紹LinQ to SQL。

成都創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的東海網(wǎng)站建設(shè)公司,東海接單;提供網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行東海網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
我們來(lái)看看LinQ to SQL,就是對(duì)數(shù)據(jù)庫(kù)的查詢,以前叫做DLinQ。經(jīng)??吹絃inQ那到底是什么呢?他是Language Integrated Query的縮寫(xiě),以一種類(lèi)似SQL語(yǔ)句的形式來(lái)對(duì)對(duì)象進(jìn)行操作的編程方法。
在使用到LinQ時(shí)也會(huì)用到以前提到過(guò)的一些特性,如:匿名類(lèi)型,自動(dòng)化屬性等等。
LinQ to SQL是一種ORM,它允許你通過(guò)編寫(xiě).NET程序來(lái)控制或操作關(guān)系型數(shù)據(jù)庫(kù)以達(dá)到查詢的效果。你可以使用LinQ來(lái)檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù),也可以通過(guò)其進(jìn)行數(shù)據(jù)的更新和添加。同時(shí)LinQ to SQL也支持事務(wù),試圖以及存儲(chǔ)過(guò)程等等,通過(guò)VS2008(現(xiàn)在使用的是beta版本,下同)的LinQ to SQL設(shè)計(jì)器我們可以很容易定義一些實(shí)體類(lèi),我們可以通過(guò)添加一個(gè)新項(xiàng)來(lái)加入.dbml文件,并從數(shù)據(jù)庫(kù)服務(wù)器窗口拖出數(shù)據(jù)表。
我們定義兩個(gè)實(shí)體類(lèi),Artile和Category,我們也可以把存儲(chǔ)過(guò)程拖到方法的窗口中,由于我們的存儲(chǔ)過(guò)程和數(shù)據(jù)表的命名可能帶有前綴或其他標(biāo)識(shí),我們可以查看屬性窗口將他們的name屬性改掉我們?nèi)菀鬃R(shí)別的名稱(chēng)。我們打開(kāi)Designer.cs那個(gè)文件看一下,是不是生成了幾個(gè)類(lèi),其中一個(gè)最重要的是以DataContext為后綴那個(gè)類(lèi)(他以當(dāng)前dbml文件名加DataContext為名稱(chēng)的類(lèi)),他是這個(gè)LinQ的上下文,我們可以通過(guò)他來(lái)執(zhí)行我們的操作。而上面兩個(gè)是外鍵關(guān)系,他還生成了一個(gè)關(guān)系類(lèi),而且在Category類(lèi)中好有一個(gè)Article的集合,在Article中也有一個(gè)關(guān)聯(lián)屬性,在賦值時(shí)還會(huì)對(duì)鍵值類(lèi)型進(jìn)行判斷。
下面我們來(lái)看看實(shí)際應(yīng)用的一些例子(LinQ to SQL四大護(hù)法<SELECT/INSERT/UPDATE/DELETE>):
1.從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)<SELECT>
- //三個(gè)重載(),(string connectionString),(IDbConnection connection)
- ItLivesNetDataContext cntx = new ItLivesNetDataContext();
- //這個(gè)也可以在初始化ItLivesNetDataContext實(shí)例時(shí)直接進(jìn)行初始化。
- cntx.Connection = new SqlConnection
(ConfigurationManager.ConnectionStrings[0].ConnectionString);- var articles = from a in cntx.Articles
- where a.CategoryID == 1
- orderby a.PostDate descending
- select a;
上面的代碼將返回?cái)?shù)據(jù)庫(kù)Articles表中類(lèi)型ID為1的所有數(shù)據(jù),并將其按發(fā)布時(shí)間進(jìn)行降序排列。其中articles其實(shí)是IEnumerable<T>的實(shí)例,這個(gè)例子的T就是Article實(shí)體類(lèi)。
2.將新數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中<INSERT>
- //插入新類(lèi)型C++
- Category category = new Category
- { CategoryName="CPLUSPLUS",IsActived=true, ParentID = 1 };
- //插入新文章,類(lèi)型為C++
- var article = new Article { Subject = "C++入門(mén)", Author="網(wǎng)魂小兵" };
- category.Articles.Add(article);
- cntx.Categories.Add(category);
- cntx.SubmitChanges();
3.更新新數(shù)據(jù)<UPDATE>
- Category category = cntx.Categories.Single(p =>
p.CategoryName.ToUpper() == "CSHARP");- category.IsActived = true;
- category.Description = "UPDATE CSHARP!";
- cntx.SubmitChanges();
4.刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)<DELETE>
- var delArtiles = from s in cntx.Articles
- where s.CategoryName == "CPLUSPLUS"
- select s;
- cntx.Articles.RemoveAll(delArtiles);
- cntx.SubmitChanges();
以上是LinQ to SQL四大護(hù)法的例子,例子很簡(jiǎn)單一看就能夠懂就不多解釋了。在數(shù)據(jù)庫(kù)中我們還經(jīng)常要用到檢索數(shù)據(jù)庫(kù)的方法那就是分頁(yè)檢索數(shù)據(jù)庫(kù),然而在比較大的數(shù)據(jù)時(shí)我們往往會(huì)用到存儲(chǔ)過(guò)程來(lái)完成這一職業(yè)。
網(wǎng)站名稱(chēng):LinQtoSQL四大護(hù)法剖析
文章網(wǎng)址:http://m.5511xx.com/article/dhhcgcg.html


咨詢
建站咨詢
