2016-11-01 2 views
0

엔티티 프레임 워크와 함께 asp.net C#을 사용하고 있는데 데이터베이스에서 레코드를 삭제하려고했습니다. 그래서 컨트롤러 부분을 아래와 같이 코딩했습니다.C# 엔터티 프레임 워크를 사용하여 데이터베이스 레코드를 삭제하는 방법은 무엇입니까?

[HttpPost] 
    public ActionResult DeleteAccount(DeleteAccountViewModel deleteaccountviewmodel) 
    { 
     TheFoodyContext db = new TheFoodyContext(); 
     string UserEmail = Session["UserEmail"].ToString(); 
     User user_to_update = db.Users.SingleOrDefault(s => s.email == UserEmail); 

     if (user_to_update != null) 
     { 
      if ((deleteaccountviewmodel.Password == user_to_update.password)) 
      { 
       db.Users.Remove(user_to_update); 
       db.SaveChanges(); 
       return RedirectToAction("~/View/Home"); 

      } 
     } 
     //return RedirectToAction("~/View/Home"); 
    } 

하지만 '상점'을 식별하지 못하므로 오류가 발생합니다. 왜 그런지 모르겠습니다. 누구든지 나를 도울 수 있습니까?

+1

db.stores가 아닌'db.Users'가 필요합니다. ' –

+0

감사합니다. 여기 나는 그것을 바 꾸었습니다. 하지만 지금은 세션에 관한 문제가 있습니다. 여기서는 이메일 주소를 사용하여 행을 삭제합니다. 그리고 내 테이블의 기본 키입니다. 삭제 후 해당 계정에서 로그 아웃 한 홈 페이지로 리디렉션하고 싶습니다. 세션을 삭제해야합니다. 어떻게해야합니까? 여기에 내 홈페이지로 리디렉션하지 않습니다. – Punya

+0

세션을 지우려면 UserManager.Signout 호출을 수행 한 다음 홈페이지로 리디렉션해야합니다. Aspnet을 사용하고 있습니까? 현시대? – WickStargazer

답변

0

코드가 정확하다고 보입니다. db.SaveChanges(); 제거 여부를 확인할 수있는 값을 반환합니다. 하지만 당신이 언급 된 '상점'상점 테이블에서 레코드를 삭제하려고하면 db.Stores.Remove()를 사용하여 명확하게 문제를 설명하지 않으면 의미가 없다는 것을 의미합니다.

관련 문제