溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

LinQ to SQL增刪改查的示例分析

發(fā)布時間:2021-12-01 10:33:33 來源:億速云 閱讀:177 作者:小新 欄目:編程語言

小編給大家分享一下LinQ to SQL增刪改查的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

我們來看看LinQ to SQL,就是對數(shù)據(jù)庫的查詢,以前叫做DLinQ。經(jīng)??吹絃inQ那到底是什么呢?他是Language Integrated Query的縮寫,以一種類似SQL語句的形式來對對象進(jìn)行操作的編程方法。

在使用到LinQ時也會用到以前提到過的一些特性,如:匿名類型,自動化屬性等等。

LinQ to SQL是一種ORM,它允許你通過編寫.NET程序來控制或操作關(guān)系型數(shù)據(jù)庫以達(dá)到查詢的效果。你可以使用LinQ來檢索數(shù)據(jù)庫中的數(shù)據(jù),也可以通過其進(jìn)行數(shù)據(jù)的更新和添加。同時LinQ to SQL也支持事務(wù),試圖以及存儲過程等等,通過VS2008(現(xiàn)在使用的是beta版本,下同)的LinQ to SQL設(shè)計器我們可以很容易定義一些實體類,我們可以通過添加一個新項來加入.dbml文件,并從數(shù)據(jù)庫服務(wù)器窗口拖出數(shù)據(jù)表。

我們定義兩個實體類,Artile和Category,我們也可以把存儲過程拖到方法的窗口中,由于我們的存儲過程和數(shù)據(jù)表的命名可能帶有前綴或其他標(biāo)識,我們可以查看屬性窗口將他們的name屬性改掉我們?nèi)菀鬃R別的名稱。我們打開Designer.cs那個文件看一下,是不是生成了幾個類,其中一個最重要的是以DataContext為后綴那個類(他以當(dāng)前dbml文件名加DataContext為名稱的類),他是這個LinQ的上下文,我們可以通過他來執(zhí)行我們的操作。而上面兩個是外鍵關(guān)系,他還生成了一個關(guān)系類,而且在Category類中好有一個Article的集合,在Article中也有一個關(guān)聯(lián)屬性,在賦值時還會對鍵值類型進(jìn)行判斷。

下面我們來看看實際應(yīng)用的一些例子(LinQ to SQL四大護(hù)法<SELECT/INSERT/UPDATE/DELETE>):

1.從數(shù)據(jù)庫中檢索數(shù)據(jù)<SELECT>

  1. //三個重載(),(string connectionString),(IDbConnection connection)  

  2. ItLivesNetDataContext cntx = new ItLivesNetDataContext();  

  3. //這個也可以在初始化ItLivesNetDataContext實例時直接進(jìn)行初始化。  

  4. cntx.Connection = new SqlConnection
    (ConfigurationManager.ConnectionStrings[0].ConnectionString);  

  5. var articles = from a in cntx.Articles  

  6. where a.CategoryID == 1  

  7. orderby a.PostDate descending  

  8. select a;  

上面的代碼將返回數(shù)據(jù)庫Articles表中類型ID為1的所有數(shù)據(jù),并將其按發(fā)布時間進(jìn)行降序排列。其中articles其實是IEnumerable<T>的實例,這個例子的T就是Article實體類。

2.將新數(shù)據(jù)插入到數(shù)據(jù)庫中<INSERT>

//插入新類型C++  Category category = new Category   { CategoryName="CPLUSPLUS",IsActived=true, ParentID = 1 };  //插入新文章,類型為C++  var article = new Article { Subject = "C++入門", Author="網(wǎng)魂小兵" };   category.Articles.Add(article);  cntx.Categories.Add(category);  cntx.SubmitChanges();

3.更新新數(shù)據(jù)<UPDATE>

  1. Category category = cntx.Categories.Single(p =>
    p.CategoryName.ToUpper() == "CSHARP");  

  2. category.IsActived = true;  

  3. category.Description = "UPDATE CSHARP!";  

  4. cntx.SubmitChanges();  

4.刪除數(shù)據(jù)庫中的數(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增刪改查的示例分析”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI