我有两张表,一张主表,一张重表。
插入数据的时候,只插入到主表中表示新增数据,当引用主表数据的时候,再把主表的主键插入到重表中,表示被引用。
现在就有这么种情况,当删除一条数据的时候,只能删除未被引用的记录,
[Description("删除")]
public ActionResult Delete(string[] id, FormCollection collection)
{
try
{
for (int i = 0; i < id.Length; i++)
{
if (!string.IsNullOrEmpty(id[i]))
{
var tRole = Db.TRole.SingleOrDefault(o => o.TroleId.Equals(id[i]));
if (tRole != null)
{
Db.TRole.DeleteOnSubmit(tRole);
Db.SubmitChanges();
}
}
}
return RedirectToAction("Index");
}
catch (Exception ex)
{
TempData["msg"] = "删除错误,记录可能已被删除或是被引用";
return RedirectToAction("Index");
}
}
原本的想法是,在删除数据的时候不能被删除的,那么这条记录就是被引用了。 否则直接删除。
但在不能删除记录的时候,能成功的提示信息 "删除错误,记录可能已被删除或是被引用",却不能再作任何操作了,数据不能添加也不能删除。
原因是在执行其它操作的时候,它会最先执行这个未处理的异常(即 删除记录,提示“"删除错误,记录可能已被删除或是被引用";
”)
我要怎么作?