详解实现LINQtoSQL删除行

实现LINQ to SQL删除行是用到什么方法呢?具体的步骤又是什么呢?那么我们下面来具体看看在数据库中如何实现LINQ to SQL删除行的操作。希望对你了解和掌握这个技术有所帮助。

创新互联服务项目包括修水网站建设、修水网站制作、修水网页制作以及修水网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,修水网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到修水省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

可以通过将对应的 LINQ to SQL对象从其与表相关的集合中删除来删除数据库中的行。LINQ to SQL 会将更改转换为相应的 SQL DELETE 命令。

实现LINQ to SQL删除行要注意的事项:

LINQ to SQL不支持且无法识别级联删除操作。如果要在对行有约束的表中删除行,则必须完成以下任务之一:

◆在数据库的外键约束中设置 ON DELETE CASCADE 规则。

◆使用自己的代码首先删除阻止删除父对象的子对象。

否则会引发异常。请参见本主题中后面的第二个代码示例。

实现LINQ to SQL删除行说明:

您可以重写 Insert、Update 和 Delete 数据库操作的 LINQ to SQL默认方法。有关更多信息,请参见 自定义插入、更新和删除操作 (LINQ to SQL)。使用 Visual Studio 的开发人员可以使用 对象关系设计器 来开发用于实现相同目的的存储过程。有关更多信息,请参见 对象关系设计器(O/R 设计器).以下步骤假定您已通过有效的 DataContext 连接到 Northwind 数据库。有关更多信息,请参见 如何:连接到数据库 (LINQ to SQL)。删除数据库中的行查询数据库中要删除的行。调用 DeleteOnSubmit 方法。将更改提交到数据库。

实现LINQ to SQL删除行实例:

这***个代码示例查询数据库中 11000 号订单的详细信息,将这些订单详细信息标记为删除,然后将这些更改提交到数据库。

 
 
 
  1. // Query the database for the rows to be deleted.
  2. var deleteOrderDetails =
  3. from details in db.OrderDetails
  4. where details.OrderID == 11000
  5. select details;
  6. foreach (var detail in deleteOrderDetails)
  7. {
  8. db.OrderDetails.DeleteOnSubmit(detail);
  9. }
  10. try
  11. {
  12. db.SubmitChanges();
  13. }
  14. catch (Exception e)
  15. {
  16. Console.WriteLine(e);
  17. // Provide for exceptions.
  18. }

在第二个示例中,目的是删除订单(10250 号)。代码首先检查 OrderDetails 表以查看要删除的订单是否有子项。如果订单有子项,则首先将子项标为删除,然后将订单标为删除。 DataContext 为实际删除设置正确的顺序,以使发送到数据库的删除命令遵守数据库约束。

实现LINQ to SQL删除行实例:

 
 
 
  1. Northwnd db = new Northwnd(@"c:\northwnd.mdf");
  2. db.Log = Console.Out;
  3. // Specify order to be removed from database
  4. int reqOrder = 10250;
  5. // Fetch OrderDetails for requested order.
  6. var ordDetailQuery =
  7. from odq in db.OrderDetails
  8. where odq.OrderID == reqOrder
  9. select odq;
  10. foreach (var selectedDetail in ordDetailQuery)
  11. {
  12. Console.WriteLine(selectedDetail.Product.ProductID);
  13. db.OrderDetails.DeleteOnSubmit(selectedDetail);
  14. }
  15. // Display progress.
  16. Console.WriteLine("detail section finished.");
  17. Console.ReadLine();
  18. // Determine from Detail collection whether parent exists.
  19. if (ordDetailQuery.Any())
  20. {
  21. Console.WriteLine(
  22. "The parent is presesnt in the Orders collection.");
  23. // Fetch Order.
  24. try
  25. {
  26. var ordFetch =
  27. (from ofetch in db.Orders
  28.  where ofetch.OrderID == reqOrder
  29.  select ofetch).First();
  30. db.Orders.DeleteOnSubmit(ordFetch);
  31. Console.WriteLine(
  32. "{0} OrderID is marked for deletion.",
  33.  ordFetch.OrderID);
  34. }
  35. catch (Exception e)
  36. {
  37. Console.WriteLine(e.Message);
  38. Console.ReadLine();
  39. }
  40. }
  41. else
  42. {
  43. Console.WriteLine(
  44. "There was no parent in the Orders collection.");
  45. }
  46. // Display progress.
  47. Console.WriteLine("Order section finished.");
  48. Console.ReadLine();
  49. try
  50. {
  51. db.SubmitChanges();
  52. }
  53. catch (Exception e)
  54. {
  55. Console.WriteLine(e.Message);
  56. Console.ReadLine();
  57. }
  58. // Display progress.
  59. Console.WriteLine("Submit finished.");
  60. Console.ReadLine();

实现LINQ to SQL删除行的操作基本内容就向你介绍到这里,希望对你了解和学习掌握实现LINQ to SQL删除行有所帮助。

当前文章:详解实现LINQtoSQL删除行
标题URL:http://www.hantingmc.com/qtweb/news30/556080.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联