0

削除するオブジェクトの選択に成功しました。しかし、問題は、オブジェクト配列からアイテムを削除しても、何も変更されないことです。私のコードは以下の通りです..

私のデータベース

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

誰でも私を助けることができますか?また、LinQ の代わりに Lambda 式を記述する方法を教えてもらえますか?

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 に答える