2

所以这里有 3 个我正在使用的表:

在此处输入图像描述

我想从特定的 ClaimCodingID 中删除 ClaimCodingProcedureCodeModifierXref 表中的所有内容以及 ProcedureCodeModifier 中的所有相关行。到目前为止,这是我的代码:

using (HCCustDataEntities hc = new HCCustDataEntities())
            {
                var result = (from CPC in hc.ClaimCodingProcedureCodeModifierXrefs
                              where CPC.ClaimCodingID == claimCodingID
                              select CPC);

                foreach (var item in result)
                {
                    hc.DeleteObject(item);
                }
            }

但只有外部参照表中的数据会被删除。为什么 EF 也不删除相关行?

4

2 回答 2

2

CASCADE DELETE在您的关系中使用。当您删除主记录时,实体框架将自动删除详细信息/子对象。您不需要自己显式删除关系中的子记录。

在此处输入图像描述

于 2012-05-15T20:07:14.187 回答
2

因为您只删除了 CCPCMX 行。

这是未经测试的,但它应该是这样的:

using (HCCustDataEntities hc = new HCCustDataEntities())
{
   var result = (from CPC in hc.ClaimCodingProcedureCodeModifierXrefs
                 where CPC.ClaimCodingID == claimCodingID
                 select CPC);

   foreach (var item in result)
   {
      hc.DeleteObject(item);

      var result2 = from pcm in hc.ProcedureCodeModifier
                    where pcm.ProcedureCodeModifierID == item.ProcedureCodeModifierID
                    select pcm;

      foreach (var row in result2)
         hc.DeleteObject(row);

      var result3 = from cc in hc.ClaimCoding
                    where cc.ClaimCodingID == item.ClaimCodingID
                    select cc;

      foreach (var row in result3)
         hc.DeleteObject(row);          
   }
}
于 2012-05-15T20:28:46.547 回答