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リレーションシップで使用します。マスターレコードを削除すると、EntityFrameworkは詳細/子オブジェクトを自動的に削除します。リレーションシップの子レコードを自分で明示的に削除する必要はありません。

ここに画像の説明を入力してください

于 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 に答える