您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Linq中怎么調用SubmitChanges方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
1. 當Linq SubmitChanges方法時,LINQ to SQL會檢查已知對象的集合以確定新實例是否已附加到它們。如果已附加,這些新實例將添加到被跟蹤對象的集合。
2. 所有具有掛起更改的對象將按照它們之間的依賴關系排序成一個對象序列。如果一個對象的更改依賴于其他對象,則這個對象將排在其依賴項之后。
3. 在即將傳輸任何實際更改時,LINQ to SQL會啟動一個事務來封裝由各條命令組成的系列。
4. 對對象的更改會逐個轉換為SQL命令,然后發送到服務器。
如果數據庫檢測到任何錯誤,都會造成提交進程停止并引發異常。將回滾對數據庫的所有更改,就像未進行過提交一樣。DataContext 仍具有所有更改的完整記錄。
下面代碼說明的是在數據庫中查詢CustomerID為ALFKI的顧客,然后修改其公司名稱,***次更新并Linq SubmitChanges方法,第二次更新了數據但并未Linq調用SubmitChanges方法。
//查詢 Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI"); //更新數據并調用SubmitChanges()方法 cust.CompanyName = "YJingLee's Blog"; db.SubmitChanges(); //更新數據沒有調用SubmitChanges()方法 cust.CompanyName = "http://lyj.cnblogs.com";
動態查詢
使用動態查詢,這個例子用CreateQuery()方法創建一個IQueryable
var c1 = Expression.Parameter(typeof(Customer), "c"); PropertyInfo City = typeof(Customer).GetProperty("City"); var pred = Expression.Lambda<Func<Customer, bool>>( Expression.Equal( Expression.Property(c1, City), Expression.Constant("Seattle") } }; IQueryable custs = db.Customers; Expression expr = Expression.Call(typeof(Queryable), "Where", new Type[] { custs.ElementType }, custs.Expression, pred); IQueryable<Customer> q = db.Customers.AsQueryable(). Provider.CreateQuery<Customer>(expr);
Log屬性用于將SQL查詢或命令打印到TextReader。此方法對了解 LINQ to SQL 功能和調試特定的問題可能很有用。
下面的示例使用Log屬性在SQL代碼執行前在控制臺窗口中顯示此代碼。我們可以將此屬性與查詢、插入、更新和刪除命令一起使用。
//關閉日志功能 //db.Log = null; //使用日志功能:日志輸出到控制臺窗口 db.Log = Console.Out; var q = from c in db.Customers where c.City == "London" select c; //日志輸出到文件 StreamWriter sw = new StreamWriter(Server.MapPath("log.txt"), true); db.Log = sw; var q = from c in db.Customers where c.City == "London" select c; sw.Close();
以上就是Linq中怎么調用SubmitChanges方法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。