Reputation: 27536
If I have a Customers
table linked to an Orders
table, and I want to delete a customer and its corresponding orders, then I can do:
dataContext.Orders.DeleteAllOnSubmit(customer.Orders);
dataContext.Customers.DeleteOnSubmit(customer);
...which is great. However, what if I also have an OrderItems
table, and I want to delete the order items for each of the orders deleted?
I can see how I could use DeleteAllOnSubmit
to cause the deletion of all the order items for a single order, but how can I do it for all the orders?
Upvotes: 0
Views: 75
Reputation: 44094
You might wish to consider using on delete cascade on the foreign key relationship in the database rather then using LINQ to do it. If you wish to use LINQ then
customer.Orders.ForEach(x => x.OrderItems.ForEach(y=> dataContext.OrderItems.Delete(y));
dataContext.Orders.DeleteAllOnSubmit(customer.Orders);
dataContext.Customers.DeleteOnSubmit(customer);
should do it but I haven't tested it.
Upvotes: 3