我已成功选择了要删除的对象。但问题是当我从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?
答案 0 :(得分:0)
我认为在这种情况下你需要使用Delete而不是删除。
使用以下内容并查看其是否有效
db.DeleteObject(p)
db.SaveChanges()
答案 1 :(得分: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();
}