Does anyone know how to delete an object and all of it's related entities.
For example I have tables, Products, Category, ProductCategory and productDetails, the productCategory is joining table of both Product and Category.
I have read from http://msdn.microsoft.com/en-us/library/bb738580.aspx that
Deleting the parent object also deletes all the child objects in the constrained relationship. This result is the same as enabling the
CascadeDeleteproperty on the association for the relationship.
I am using this code:
Product productObj = this.ObjectContext.Product.Where(p => p.ProductID.Equals(productID)).First(); if (!productObj.ProductCategory.IsLoaded) productObj.ProductCategory.Load(); if (!productObj.ProductDetails.IsLoaded) productObj.ProductDetails.Load(); //my own methods. base.Delete(productObj); base.SaveAllObjectChanges();
But I am getting an error on
A relationship is being added or deleted from an
AssociationSet'FK_ProductCategory_Product'. With cardinality constraints, a corresponding 'ProductCategory' must also be added or deleted.
Thanks for the reply. I have solved my problem. Using the same cascade in EDMX. For the explanation i am answering my own question. :)
We have to add
<OnDelete Action="Cascade"></OnDelete> in EDMX file at two portions