本文介绍了为什么不在删除工作级联?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,



我有以下代码:



           节点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循环)时,这不是发生的事情。所有节点都标记为
已删除,所有偏差都标记为已修改,所有其他实体都标记为未更改。



为什么不是级联设置工作?
$


这里有一个例子,说明我如何在删除时为节点和偏差之间的关系设置级联:






解决方案


这篇关于为什么不在删除工作级联?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-27 13:35