Linq To Sql,实体的扩展删除不再让它删除

时间:2015-11-02 10:12:37

标签: c# linq linq-to-sql dbml

我有2个实体,例如Parent和Child。

我想在这里实现的是将实体Child的Delete方法扩展,这样我可以在删除时做一些事情,这是我到目前为止所做的:

partial class MyDataClassDataContext
{
    partial void DeleteChild(Child instance)
    {
        //My Custom Code Here
    }
}

代码中有一个事件会删除父及其所有子代,如下所示:

 void DeleteParent(Parent itemParent)
 {
    var ListChilds = db.Parents.Where(p=>p == itemParent).Select(p=>p.Childs);
    if(ListCilds.Any())
    {
       db.Chields.DeleteAllOnSubmit(ListCilds);
    }
    db.Parents.DeleteOnSubmit(itemParent);
    db.SubmitChanges();
 } 

此代码始终有效,但是当我尝试扩展Child的Delete方法时,它似乎等待我决定是否删除它们,并且我得到一个例外,即Parent有Child时不能删除它。

1 个答案:

答案 0 :(得分:0)

我认为你必须在你的删除子方法中找到所有父母,并从他们的Childs集合中移除这个特定的孩子...这将删除该关系,然后你可以删除孩子本身。