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
CascadeDelete
property 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 ObjectContext.SaveChanges();
I.e.,
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.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…