首页 新闻 会员 周边 捐助

Linq怎么处理异常?

0
[已关闭问题] 关闭于 2012-08-21 14:37

我有两张表,一张主表,一张重表。

插入数据的时候,只插入到主表中表示新增数据,当引用主表数据的时候,再把主表的主键插入到重表中,表示被引用。

现在就有这么种情况,当删除一条数据的时候,只能删除未被引用的记录,

        [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");
            }

        }

原本的想法是,在删除数据的时候不能被删除的,那么这条记录就是被引用了。 否则直接删除。

但在不能删除记录的时候,能成功的提示信息 "删除错误,记录可能已被删除或是被引用",却不能再作任何操作了,数据不能添加也不能删除。

原因是在执行其它操作的时候,它会最先执行这个未处理的异常(即 删除记录,提示“"删除错误,记录可能已被删除或是被引用";
”)

我要怎么作?

wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2011-03-07 21:19
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册