自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

LinQ to SQL四大護(hù)法剖析

開發(fā) 后端
這里介紹LinQ to SQL四大護(hù)法,LinQ to SQL是一種ORM,它允許你通過(guò)編寫.NET程序來(lái)控制或操作關(guān)系型數(shù)據(jù)庫(kù)以達(dá)到查詢的效果。你可以使用LinQ來(lái)檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù),也可以通過(guò)其進(jìn)行數(shù)據(jù)的更新和添加。

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

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

在使用到LinQ時(shí)也會(huì)用到以前提到過(guò)的一些特性,如:匿名類型,自動(dòng)化屬性等等。

LinQ to SQL是一種ORM,它允許你通過(guò)編寫.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í)體類,我們可以通過(guò)添加一個(gè)新項(xiàng)來(lái)加入.dbml文件,并從數(shù)據(jù)庫(kù)服務(wù)器窗口拖出數(shù)據(jù)表。

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

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

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

  1. //三個(gè)重載(),(string connectionString),(IDbConnection connection)  
  2. ItLivesNetDataContext cntx = new ItLivesNetDataContext();  
  3. //這個(gè)也可以在初始化ItLivesNetDataContext實(shí)例時(shí)直接進(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;  

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

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

  1. //插入新類型C++  
  2. Category category = new Category   
  3. CategoryName="CPLUSPLUS",IsActived=trueParentID = 1 };  
  4. //插入新文章,類型為C++  
  5. var article = new Article { Subject = "C++入門"Author="網(wǎng)魂小兵" };   
  6. category.Articles.Add(article);  
  7. cntx.Categories.Add(category);  
  8. 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ù)庫(kù)中的數(shù)據(jù)<DELETE>

  1. var delArtiles = from s in cntx.Articles  
  2. where s.CategoryName == "CPLUSPLUS"  
  3. select s;  
  4. cntx.Articles.RemoveAll(delArtiles);  
  5. 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è)。

【編輯推薦】

  1. Linq匿名委托類型
  2. Linq異常處理詳細(xì)介紹
  3. Linq Setting字段描述
  4. Linq數(shù)據(jù)和對(duì)象淺談
  5. Linq內(nèi)部執(zhí)行原理剖析
責(zé)任編輯:佚名 來(lái)源: 51CTO.com
相關(guān)推薦

2009-09-09 14:40:43

Linq to sql

2009-09-07 16:25:14

Linq To SQL

2009-09-08 16:20:12

LINQ to SQL

2009-09-16 09:56:42

LINQ to SQL

2012-12-13 09:45:32

BYOD移動(dòng)通信

2010-09-02 10:12:34

CSS導(dǎo)航

2010-07-08 15:56:52

UML類圖依賴關(guān)系

2017-02-23 14:27:05

信息化信息孤島教育信息化

2009-09-17 15:22:38

LINQ to SQL

2010-10-21 14:21:15

SQL Server視

2015-07-17 09:50:16

Carthage優(yōu)劣比較

2011-03-21 09:01:49

CSS框架

2010-04-07 15:06:26

Windows HPC高性能計(jì)算微軟

2013-01-06 10:44:43

微軟Windows 8云計(jì)算

2016-03-30 11:51:55

2009-09-10 14:37:57

LINQ匿名類型

2009-09-16 16:59:05

LINQ to XML

2009-09-17 13:15:20

LINQ查詢

2013-05-20 08:56:13

2010-07-22 09:14:51

SQL Server全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)