您好,登錄后才能下訂單哦!
小編給大家分享一下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>
//三個重載(),(string connectionString),(IDbConnection connection)
ItLivesNetDataContext cntx = new ItLivesNetDataContext();
//這個也可以在初始化ItLivesNetDataContext實例時直接進(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;
上面的代碼將返回數(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>
Category category = cntx.Categories.Single(p =>
p.CategoryName.ToUpper() == "CSHARP");category.IsActived = true;
category.Description = "UPDATE CSHARP!";
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è)資訊頻道,感謝各位的閱讀!
免責(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)容。