2016-11-01 3 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.Users', а не' db.Stores ' –

+0

Хорошо, спасибо. Здесь я изменил его. Но теперь у меня проблема с сеансом. Здесь я удаляю строку, используя адрес электронной почты. И это первичный ключ моей таблицы. После удаления я хочу перенаправить на домашнюю страницу с выходом из этой учетной записи, и мне нужно очистить сеанс. Как я должен это делать? Здесь я не перенаправляюсь на свою домашнюю страницу. – Punya

+0

Чтобы очистить сеанс, вы должны выполнить вызов UserManager.Signout, а затем перенаправить на главную страницу. Вы используете Aspnet.Identity? – WickStargazer

ответ

0

Ваш код представляется правильным. db.SaveChanges(); вернет значение, которое вы можете проверить, удалено или нет. но вы упомянуты «Магазины» не определены означает, что если вы пытаетесь удалить запись из таблицы магазинов, используйте db.Stores.Remove(), если не ясно объясните свою проблему

Смежные вопросы