您好,登錄后才能下訂單哦!
這篇文章主要介紹“LINQ to SQL數(shù)據(jù)庫如何更改”,在日常操作中,相信很多人在LINQ to SQL數(shù)據(jù)庫如何更改問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”LINQ to SQL數(shù)據(jù)庫如何更改”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
LINQ to SQL數(shù)據(jù)庫驗證
DatabaseExists方法用于嘗試通過使用DataContext中的連接打開數(shù)據(jù)庫,如果成功返回true。
下面代碼說明是否存在Northwind數(shù)據(jù)庫和NewCreateDB數(shù)據(jù)庫 。
//檢測Northwind數(shù)據(jù)庫是否存在 if (db.DatabaseExists()) Console.WriteLine("Northwind數(shù)據(jù)庫存在"); else Console.WriteLine("Northwind數(shù)據(jù)庫不存在"); //檢測NewCreateDB數(shù)據(jù)庫是否存在 string userTempFolder = Environment.GetEnvironmentVariable("Temp"); string userMDF = System.IO.Path.Combine(userTempFolder, @"NewCreateDB.mdf"); NewCreateDB newnewDB = new NewCreateDB(userMDF); if (newDB.DatabaseExists()) Console.WriteLine("NewCreateDB數(shù)據(jù)庫存在"); else 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ù)?a title="服務(wù)器" target="_blank" href="http://kemok4.com/">服務(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()方法。
//查詢 Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI"); //更新數(shù)據(jù)并調(diào)用SubmitChanges()方法 cust.CompanyName = "YJingLee's Blog"; db.SubmitChanges(); //更新數(shù)據(jù)沒有調(diào)用SubmitChanges()方法 cust.CompanyName = "http://lyj.cnblogs.com";
到此,關(guān)于“LINQ to SQL數(shù)據(jù)庫如何更改”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(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)容。