日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
LINQ to SQL數(shù)據(jù)庫更改

在向大家詳細(xì)介紹LINQ to SQL數(shù)據(jù)庫更改之前,首先讓大家了解下LINQ to SQL數(shù)據(jù)庫驗證,然后全面介紹LINQ to SQL數(shù)據(jù)庫更改。

LINQ to SQL數(shù)據(jù)庫驗證

DatabaseExists方法用于嘗試通過使用DataContext中的連接打開數(shù)據(jù)庫,如果成功返回true。

下面代碼說明是否存在Northwind數(shù)據(jù)庫和NewCreateDB數(shù)據(jù)庫 。

 
 
 
  1. //檢測Northwind數(shù)據(jù)庫是否存在  
  2. if (db.DatabaseExists())  
  3. Console.WriteLine("Northwind數(shù)據(jù)庫存在");  
  4. else  
  5. Console.WriteLine("Northwind數(shù)據(jù)庫不存在");  
  6. //檢測NewCreateDB數(shù)據(jù)庫是否存在  
  7. string userTempFolder = Environment.GetEnvironmentVariable("Temp");  
  8. string userMDF = System.IO.Path.Combine(userTempFolder,  
  9. @"NewCreateDB.mdf");  
  10. NewCreateDB newnewDB = new NewCreateDB(userMDF);  
  11.  
  12. if (newDB.DatabaseExists())  
  13. Console.WriteLine("NewCreateDB數(shù)據(jù)庫存在");  
  14. else  
  15. Console.WriteLine("NewCreateDB數(shù)據(jù)庫不存在"); 

LINQ to SQL數(shù)據(jù)庫更改

SubmitChanges方法計算要插入、更新或刪除的已修改對象的集,并執(zhí)行相應(yīng)命令以實現(xiàn)對LINQ to SQL數(shù)據(jù)庫的更改。

無論對象做了多少項更改,都只是在更改內(nèi)存中的副本。并未對數(shù)據(jù)庫中的實際數(shù)據(jù)做任何更改。直到對DataContext顯式調(diào)用 SubmitChanges,所做的更改才會傳輸?shù)椒?wù)器。調(diào)用時,DataContext會設(shè)法將我們所做的更改轉(zhuǎn)換為等效的SQL命令。我們也可以使用自己的自定義邏輯來重寫這些操作,但提交順序是由DataContext的一項稱作“更改處理器”的服務(wù)來協(xié)調(diào)的。事件的順序如下:
1. 當(dāng)調(diào)用SubmitChanges時,LINQ to SQL會檢查已知對象的集合以確定新實例是否已附加到它們。如果已附加,這些新實例將添加到被跟蹤對象的集合。
2. 所有具有掛起更改的對象將按照它們之間的依賴關(guān)系排序成一個對象序列。如果一個對象的更改依賴于其他對象,則這個對象將排在其依賴項之后。
3. 在即將傳輸任何實際更改時,LINQ to SQL會啟動一個事務(wù)來封裝由各條命令組成的系列。
4. 對對象的更改會逐個轉(zhuǎn)換為SQL命令,然后發(fā)送到服務(wù)器。

如果數(shù)據(jù)庫檢測到任何錯誤,都會造成提交進(jìn)程停止并引發(fā)異常。將回滾對數(shù)據(jù)庫的所有更改,就像未進(jìn)行過提交一樣。DataContext 仍具有所有更改的完整記錄。

下面代碼說明的是在LINQ to SQL數(shù)據(jù)庫中查詢CustomerID為ALFKI的顧客,然后修改其公司名稱,***次更新并調(diào)用SubmitChanges()方法,第二次更新了數(shù)據(jù)但并未調(diào)用SubmitChanges()方法。

 
 
 
  1. //查詢  
  2. Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI");  
  3. //更新數(shù)據(jù)并調(diào)用SubmitChanges()方法  
  4. cust.CompanyName = "YJingLee's Blog";  
  5. db.SubmitChanges();  
  6. //更新數(shù)據(jù)沒有調(diào)用SubmitChanges()方法  
  7. cust.CompanyName = "http://lyj.cnblogs.com"; 

【編輯推薦】

  1. Linq匿名類型簡單概述
  2. Linq隨機(jī)讀取數(shù)據(jù)淺析
  3. Linq Lambda表達(dá)式全面分析
  4. Linq擴(kuò)展方法簡單分析
  5. 初探Linq局部變量類型

文章名稱:LINQ to SQL數(shù)據(jù)庫更改
URL地址:http://m.5511xx.com/article/djpossc.html