/// <summary> 删除快捷键以及他的子节点 /// </summary> /// <param name="DeleteData"></param> /// <returns></returns> public bool DeleteShortCutKey(tShortCutKey DeleteData) { if (string.IsNullOrEmpty(DeleteData.ShortCutKeyID)) { return(false); } using (OfficeToolsDb db = new OfficeToolsDb()) { var tShortCutKeyIdList = db.tShortCutKey.Select(T1 => new { ID = T1.ShortCutKeyID, ParentID = T1.ParentID }).ToList(); //取出该表的所有ID和父ID List <dynamic> tIdList = tShortCutKeyIdList.Select(T1 => (dynamic)T1).ToList(); //将匿名对象转换成Dynamic方便后面传递给递归方法 List <string> DeliteIdList = GetChidrenId(tIdList, DeleteData.ShortCutKeyID); //递归无限向下取所有子节点ID DeliteIdList.Add(DeleteData.ShortCutKeyID); //自己本身也要被删除 List <tShortCutKey> DeleteEntityList = DeliteIdList.Select(T1 => new tShortCutKey() { ShortCutKeyID = T1 }).ToList(); //将Dynamic集合转换为tShortCutKey方便EF删除 #region 开始删除 foreach (tShortCutKey Deleteitem in DeleteEntityList) { DbEntityEntry Status = db.Entry(Deleteitem); Status.State = EntityState.Deleted; } db.SaveChanges(); #endregion 开始删除 } return(true); }
public bool UpdateShortcutKey(tShortCutKey UpdateEntity) { int ChangeLineCount = 0; using (OfficeToolsDb db = new OfficeToolsDb()) { db.Entry <tShortCutKey>(UpdateEntity).State = EntityState.Modified; ChangeLineCount = db.SaveChanges(); } return(0 < ChangeLineCount); }