0

我已成功选择要删除的对象。但问题是当我从 Object 数组中删除一个项目时,它不会做任何更改。我的代码如下..

我的数据库

public List<Product> db = new ProductRepository().GetProducts();

在这里它显示了所有带有复选框的产品..

public ActionResult MultipleDeletes()
        {
            return View(db);
        }

在提交“名为删除的按钮”时,我遇到了问题。

[HttpPost]
        public ActionResult MultipleDeletes(int[] selectedProducts)
        {  
            var del_products  = from x in selectedProducts
                           from y in db
                           where y.ProductId == x
                           select y;

            foreach (var item in del_products)
            {
                //Product p = db.Find(item.ProductId);
                //db.Remove(p);
                //db.SaveChanges();
            }                    

            return View(db);
        }

有人可以帮我吗?你能告诉我,如何用 Lambda 表达式代替 LinQ?

4

2 回答 2

0

我认为在这种情况下,您需要使用删除而不是删除。

使用以下,看看它是否有效

db.DeleteObject(p)
db.SaveChanges()
于 2012-01-06T08:17:24.977 回答
0

问题出在模型中。我使用了 NBuilder.. 所以它并没有真正保存数据。我建立了一个 DbContext。然后它起作用了。解决方案是..

public ProductDBContext db = new ProductDBContext();


        [HttpPost]
        public ActionResult MultipleDeletes(int[] selectedProducts)
        {
            foreach (int item in selectedProducts)
            {
               Product product = db.Where(p => p.ProductId == item).SingleOrDefault();
               db.Remove(product);
               db.SaveChanges();
            }
          return View();
        }
于 2012-01-07T13:28:12.340 回答