//普遍的情况,发现错误,迅速退款
var cx_xysj = from aa in kk
where aa.数量 < 0 && aa.删除!="是"
select aa;
foreach (var dd in cx_xysj)//找到数量相反的正的记录,自己和本身都删除,对应删除
{
double? sl = dd.数量 * (-1);
var cx_zxsj = from aa in kk
where aa.数量 == sl && aa.删除 != "是"
select aa;
if (cx_zxsj.Count() > 0)
{
//linq数据删除与更新问题,不能删除循环体。而更新,在实体没有保存前修改后,查询当前实体,而不是再次提交查询的其它实体,对当前实体再次查询变化的条件,有效。
// sjklj.病员信息大全.DeleteObject(cx_zxsj.First());//删除数量为负数的对应正数记录:不能删除循环体,否则混乱
// sjklj.病员信息大全.DeleteObject(dd);//删除数量为负数的
cx_zxsj.First().删除 = "是";
dd.删除 = "是";
}
}
}
//删除标记为是的记录
var cx_scjl = from aa in kk
where aa.删除 == "是"
select aa;
foreach(var ff in cx_scjl)
{
sjklj.病员信息大全.DeleteObject(ff);
}
}
sjklj.SaveChanges();
System.Threading.Thread.Sleep(2000);