本文介绍了为什么不在删除工作级联?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好,
我有以下代码:
           节点node = Project.Nodes.Where(n => n.Description.Contains(" Polymer Blending Header [从PMA Expansion HAZOP重新验证(2017年3月)]"))。First();
          Deviation dev = node.Deviations.Where(d => d.DeviationId == 9158).First();
         原因= dev.Causes.Where(c => c.CauseId == 19673).First();
         结果后果= cause.Consequences.Where(cq => cq.ConsequenceId == 23822).First();
         推荐建议=结果。建议。其中(rec => rec.RecommendationId == 4459).First();
          Safeguard safeguard = outcome.Safeguards.Where(sg => sg.SafeguardId == 26988).First();
         绘图= vote.Drawings.Where(dw => dw.DrawingId == 3335).First();
         备注remark = suff.Remarks.FirstOrDefault();
         列表与LT;节点> nodes = Project.Nodes.ToList();
          foreach(节点中的节点n)
          {
              Context.Entry(n).State = EntityState.Deleted;
          }
          EntityState d_es = Context.Entry(dev).State;
          EntityState c_es = Context.Entry(cause).State;
          EntityState cq_es = Context.Entry(后果).State;
          EntityState sg_es = Context.Entry(safeguard).State;
          EntityState r_es = Context.Entry(推荐).State;
          EntityState rm_es = Context.Entry(remark).State;
          EntityState dw_es = Context.Entry(drawing).State;
此代码为应该删除一大堆实体。这些实体是:
*节点
*偏差
*原因
*后果
*建议
*保障措施
*备注
*图纸
这些实体构成一个层次结构。节点位于顶部。偏差具有对Node的外键引用,将它们直接放在节点下。原因直接在偏差之下(他们有FK参考)。等等所有其他实体等等。
此模式中断的唯一时间是建议书,保障措施和备注,这三个都是直接子项到后果。图纸是建议书的直接子项。
在EDMX模型中,我将所有关系设置为删除级联。这意味着为了删除所有内容,我只需要删除节点。但是当我运行上面的代码(特别是foreach循环)时,这不是发生的事情。所有节点都标记为
已删除,所有偏差都标记为已修改,所有其他实体都标记为未更改。
为什么不是级联设置工作?
$
这里有一个例子,说明我如何在删除时为节点和偏差之间的关系设置级联:
解决方案
这篇关于为什么不在删除工作级联?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!