删除对象及其相关实体

Wah*_*eed 2 c# linq-to-entities entity-framework c#-4.0

有谁知道如何删除对象及其所有相关实体.

例如,我有表,Products,Category,ProductCategory和productDetails,productCategory正在连接Product和Category的表.

我从http://msdn.microsoft.com/en-us/library/bb738580.aspx上读到

删除父对象还会删除受约束关系中的所有子对象.此结果CascadeDelete与在关系的关联上启用属性相同 .

我正在使用此代码:

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();
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误,ObjectContext.SaveChanges();

正在添加或删除AssociationSet"FK_ProductCategory_Product"中的关系.使用基数约束时,还必须添加或删除相应的"ProductCategory".

Wah*_*eed 7

谢谢回复.我已经解决了我的问题.在EDMX中使用相同的级联.为了解释我正在回答我自己的问题.:)

我们必须<OnDelete Action="Cascade"></OnDelete>分两部分添加EDMX文件

  1. 在SSDL部分
  2. 在CSDL部分


Dev*_*art 5

看看这个问题.
在那里描述了一级关联的情况.如果您正确设置OnDelete操作,则删除所有关联的子对象应该没有问题.