0

,我发现了以下错误: 删除的对象 - 自参照表

“删除对象将通过级联(从协会删除已删除对象)重新保存”我已经削减的全部Ajax调用以下几点:

[HttpPost] 
    [UnitOfWork(Scope = FilterScope.Result)] 
    public ActionResult SaveEditMode(long id, AddTrackedRowViewModel model, string editMode, List<string> elementNames, string provisionData) 
    {  
     var cell = _supplementCoordinator.GetSupplement(id).TrackedTables.First(x => x.Name == model.Name).TrackedRows.First(x => x.Ordinal == model.Ordinal).TrackedCells.First(x => x.Name == "Detail"); 
     _supplementCoordinator.RemoveChildren(cell); 

     return Json(new {Success = true}); 
    } 



    public bool RemoveChildren(TrackedNode parentNode) 
    { 
     foreach (TrackedField trackedField in parentNode.ChildNodes) 
     { 
      _trackedFieldRepository.Delete(trackedField); 
     } 
     return true; 
    } 

我的映射如下

 mapping.HasMany(x => x.ChildNodes).KeyColumn("ParentNodeId").Inverse(); 
     mapping.References(x => x.ParentNode); 

回答

1

刚刚从父集合中移除子节点就像ERR或建议:

public bool RemoveChildren(TrackedNode parentNode) 
    { 
     foreach (TrackedField trackedField in new List<TrackField>(parentNode.ChildNodes)) 
     { 
      _trackedFieldRepository.Delete(trackedField); 
      _parentNode.Remove(trackField); 
     } 
     return true; 
    } 
+0

没错。新鲜的眼睛。谢谢。 – Seth