所以这里有3张我正在使用的表:
我想删除ClaimCodingProcedureCodeModifierXref表中的所有内容以及来自特定ClaimCodingID的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);
}
}
但只有Xref表中的数据才会被删除。为什么EF也不删除相关的行?
答案 0 :(得分:2)
在您的关系中使用CASCADE DELETE
。删除主记录时,实体框架将自动删除详细信息/子对象。您不需要自己明确删除关系中的子记录。
答案 1 :(得分: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);
}
}