這期內容當中小編將會給大家?guī)碛嘘P怎么實現(xiàn)LINQ to SQL刪除行,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供古交網站建設、古交做網站、古交網站設計、古交網站制作等企業(yè)網站建設、網頁設計與制作、古交企業(yè)網站模板建站服務,10年古交做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
可以通過將對應的 LINQ to SQL對象從其與表相關的集合中刪除來刪除數據庫中的行。LINQ to SQL 會將更改轉換為相應的 SQL DELETE 命令。
實現(xiàn)LINQ to SQL刪除行要注意的事項:
LINQ to SQL不支持且無法識別級聯(lián)刪除操作。如果要在對行有約束的表中刪除行,則必須完成以下任務之一:
◆在數據庫的外鍵約束中設置 ON DELETE CASCADE 規(guī)則。
◆使用自己的代碼首先刪除阻止刪除父對象的子對象。
否則會引發(fā)異常。請參見本主題中后面的第二個代碼示例。
實現(xiàn)LINQ to SQL刪除行說明:
您可以重寫 Insert、Update 和 Delete 數據庫操作的 LINQ to SQL默認方法。有關更多信息,請參見 自定義插入、更新和刪除操作 (LINQ to SQL)。使用 Visual Studio 的開發(fā)人員可以使用 對象關系設計器 來開發(fā)用于實現(xiàn)相同目的的存儲過程。有關更多信息,請參見 對象關系設計器(O/R 設計器).以下步驟假定您已通過有效的 DataContext 連接到 Northwind 數據庫。有關更多信息,請參見 如何:連接到數據庫 (LINQ to SQL)。刪除數據庫中的行查詢數據庫中要刪除的行。調用 DeleteOnSubmit 方法。將更改提交到數據庫。
實現(xiàn)LINQ to SQL刪除行實例:
這第一個代碼示例查詢數據庫中 11000 號訂單的詳細信息,將這些訂單詳細信息標記為刪除,然后將這些更改提交到數據庫。
// Query the database for the rows to be deleted. var deleteOrderDetails = from details in db.OrderDetails where details.OrderID == 11000 select details; foreach (var detail in deleteOrderDetails) { db.OrderDetails.DeleteOnSubmit(detail); } try { db.SubmitChanges(); } catch (Exception e) { Console.WriteLine(e); // Provide for exceptions. }
在第二個示例中,目的是刪除訂單(10250 號)。代碼首先檢查 OrderDetails 表以查看要刪除的訂單是否有子項。如果訂單有子項,則首先將子項標為刪除,然后將訂單標為刪除。 DataContext 為實際刪除設置正確的順序,以使發(fā)送到數據庫的刪除命令遵守數據庫約束。
實現(xiàn)LINQ to SQL刪除行實例:
Northwnd db = new Northwnd(@"c:\northwnd.mdf"); db.Log = Console.Out; // Specify order to be removed from database int reqOrder = 10250; // Fetch OrderDetails for requested order. var ordDetailQuery = from odq in db.OrderDetails where odq.OrderID == reqOrder select odq; foreach (var selectedDetail in ordDetailQuery) { Console.WriteLine(selectedDetail.Product.ProductID); db.OrderDetails.DeleteOnSubmit(selectedDetail); } // Display progress. Console.WriteLine("detail section finished."); Console.ReadLine(); // Determine from Detail collection whether parent exists. if (ordDetailQuery.Any()) { Console.WriteLine( "The parent is presesnt in the Orders collection."); // Fetch Order. try { var ordFetch = (from ofetch in db.Orders where ofetch.OrderID == reqOrder select ofetch).First(); db.Orders.DeleteOnSubmit(ordFetch); Console.WriteLine( "{0} OrderID is marked for deletion.", ordFetch.OrderID); } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadLine(); } } else { Console.WriteLine( "There was no parent in the Orders collection."); } // Display progress. Console.WriteLine("Order section finished."); Console.ReadLine(); try { db.SubmitChanges(); } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadLine(); } // Display progress. Console.WriteLine("Submit finished."); Console.ReadLine();
上述就是小編為大家分享的怎么實現(xiàn)LINQ to SQL刪除行了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。