您好,登錄后才能下訂單哦!
小編給大家分享一下LinQ to SQL增刪改查的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
我們來看看LinQ to SQL,就是對數據庫的查詢,以前叫做DLinQ。經常看到LinQ那到底是什么呢?他是Language Integrated Query的縮寫,以一種類似SQL語句的形式來對對象進行操作的編程方法。
在使用到LinQ時也會用到以前提到過的一些特性,如:匿名類型,自動化屬性等等。
LinQ to SQL是一種ORM,它允許你通過編寫.NET程序來控制或操作關系型數據庫以達到查詢的效果。你可以使用LinQ來檢索數據庫中的數據,也可以通過其進行數據的更新和添加。同時LinQ to SQL也支持事務,試圖以及存儲過程等等,通過VS2008(現在使用的是beta版本,下同)的LinQ to SQL設計器我們可以很容易定義一些實體類,我們可以通過添加一個新項來加入.dbml文件,并從數據庫服務器窗口拖出數據表。
我們定義兩個實體類,Artile和Category,我們也可以把存儲過程拖到方法的窗口中,由于我們的存儲過程和數據表的命名可能帶有前綴或其他標識,我們可以查看屬性窗口將他們的name屬性改掉我們容易識別的名稱。我們打開Designer.cs那個文件看一下,是不是生成了幾個類,其中一個最重要的是以DataContext為后綴那個類(他以當前dbml文件名加DataContext為名稱的類),他是這個LinQ的上下文,我們可以通過他來執行我們的操作。而上面兩個是外鍵關系,他還生成了一個關系類,而且在Category類中好有一個Article的集合,在Article中也有一個關聯屬性,在賦值時還會對鍵值類型進行判斷。
下面我們來看看實際應用的一些例子(LinQ to SQL四大護法<SELECT/INSERT/UPDATE/DELETE>):
1.從數據庫中檢索數據<SELECT>
//三個重載(),(string connectionString),(IDbConnection connection)
ItLivesNetDataContext cntx = new ItLivesNetDataContext();
//這個也可以在初始化ItLivesNetDataContext實例時直接進行初始化。
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;
上面的代碼將返回數據庫Articles表中類型ID為1的所有數據,并將其按發布時間進行降序排列。其中articles其實是IEnumerable<T>的實例,這個例子的T就是Article實體類。
2.將新數據插入到數據庫中<INSERT>
//插入新類型C++ Category category = new Category { CategoryName="CPLUSPLUS",IsActived=true, ParentID = 1 }; //插入新文章,類型為C++ var article = new Article { Subject = "C++入門", Author="網魂小兵" }; category.Articles.Add(article); cntx.Categories.Add(category); cntx.SubmitChanges();
3.更新新數據<UPDATE>
Category category = cntx.Categories.Single(p =>
p.CategoryName.ToUpper() == "CSHARP");category.IsActived = true;
category.Description = "UPDATE CSHARP!";
cntx.SubmitChanges();
4.刪除數據庫中的數據<DELETE>
var delArtiles = from s in cntx.Articles where s.CategoryName == "CPLUSPLUS" select s; cntx.Articles.RemoveAll(delArtiles); cntx.SubmitChanges();
看完了這篇文章,相信你對“LinQ to SQL增刪改查的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。