如果我有Customers
表链接到Orders
表,并且我想删除客户及其相应的订单,那么我可以这样做:
dataContext.Orders.DeleteAllOnSubmit(customer.Orders);
dataContext.Customers.DeleteOnSubmit(customer);
......这很棒。但是,如果我还有OrderItems
表,并且我想删除每个已删除订单的订单商品,该怎么办?
我可以看到如何使用DeleteAllOnSubmit
删除单个订单的所有订单商品,但我怎样才能为所有执行此操作>订单?
答案 0 :(得分:3)
您可能希望考虑在数据库中的外键关系上使用删除级联,而不是使用LINQ来执行此操作。如果你想使用LINQ那么
customer.Orders.ForEach(x => x.OrderItems.ForEach(y=> dataContext.OrderItems.Delete(y));
dataContext.Orders.DeleteAllOnSubmit(customer.Orders);
dataContext.Customers.DeleteOnSubmit(customer);
应该这样做,但我还没有测试过。