DeleteOnSubmit()和SubmitChanges()不起作用。没有例外或错误。 InsertOnSubmit()工作正常

时间:2017-10-23 10:49:59

标签: c# sql-server asp.net-mvc linq

我将此代码从数据库中删除一个类别行。类别只有2列:Id和Name。 它没有宣布任何错误。它只是不起作用。

如果有效,则应重定向到Categories/Index。相反,它会显示Categories/Delete,但现在没有任何类别作为参数。

        public ActionResult Delete(int id)
        {
            var category = db.Categories.Where(r => r.Id == id).SingleOrDefault();
            return View(category); 
        }

        [HttpPost]
        public ActionResult Delete(Category category)
        {
            try
            {
                Category c = db.Categories
                    .Where(r => r.Id == category.Id)
                    .Single<Category>();
                db.Categories.DeleteOnSubmit(c);
                db.SubmitChanges();
                return RedirectToAction("Index");
            }
            catch
            {
                return View(category);
            }
        }

但是这个Create动作的代码运行得很好:

    public ActionResult Create()
    {
        Category c = new Category();
        return View(c);
    }

    [HttpPost]
    public ActionResult Create(Category category)
    {
        try
        {
            Category x = new Category
            {
                Name = category.Name
            };
            db.Categories.InsertOnSubmit(x);
            db.SubmitChanges();
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

1 个答案:

答案 0 :(得分:0)

原来我想测试删除功能的行被数据库中的另一个表引用为外键。

我测试了删除未被任何其他表引用的行。工作得很好。