2012-01-06 5 views
0

삭제할 객체를 성공적으로 선택했습니다. 하지만 문제는 개체 배열에서 항목을 제거 할 때 변경되지 않습니다. 내 코드는 "삭제라는 버튼을"제출에 .. 내 데이터베이스 여기MVC3 : 선택한 객체의 배열에서 데이터베이스의 객체를 삭제합니다.

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 대신 람다 식을 작성하는 방법을 알려주시겠습니까?

+1

이 질문은 실제로 MVC의 ERM 프레임 워크에 관한 것은 아닙니다. 어떤 데이터베이스 액세스 기술을 사용하고 있습니까? –

+0

.sdf를 사용하고 있습니다. –

+0

실제 데이터베이스 파일이 맞습니까? 데이터베이스에 어떻게 액세스하고 있습니까? 엔티티 프레임 워크 또는 Linq를 SQL 또는 다른 ORM에 사용하고 있습니까? –

답변

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

이 경우에는 삭제보다는 삭제를 사용해야한다고 생각합니다.

를 사용하여 다음과이 문제는 모델이었다

db.DeleteObject(p) 
db.SaveChanges() 
+0

이전 줄에서 이미 가지고 있습니다. Product p = db.Find (item.ProductId) .. find에 잘못된 인수가 있다고합니다. 그런 다음 .DeleteObject가 Intellisense에 나타나지 않습니다. –

관련 문제