2015-12-28 3 views
0

Итак, я пытаюсь удалить 1 запись из таблицы многих из многих. Однако он ничего не удаляет?EF Entitystate удаляет 1 запись из многих для многих

Я пытаюсь удалить запись, в которой UserId == Идентификатор зарегистрированного пользователя и где GroupId == id - это идентификатор, указанный ссылкой из таблицы many to many с именем GroupUser (с полями: UserId и GroupID):

public IActionResult UnSubscribe(Int16 id) 
    { 
     if(User.GetUserId() != null) 
     { 
      GroupUser groupToDel = _MyContext.GroupUser.Where(g => g.GroupId == id).FirstOrDefault(); 
      groupToDel.UserId+=User.GetUserId(); 

      _MyContext.Entry(groupToDel).State = EntityState.Deleted; 
      _MyContext.SaveChanges(); 
      return RedirectToAction("Index", "Group"); 
     } 
     else 
     { 
      throw new Exception("There was an Error!"); 
     } 
    } 
+0

посмотреть здесь: http://www.entityframeworktutorial.net /delete-many-to-many-entities-in-entity-framework.aspx – Daniel

ответ

0

вы делаете это более трудным, чем я думаю, вы должны попробовать просто сделать это:

GroupUser groupToDel = _MyContext.GroupUser.Where(g => g.GroupId == groupid 
                && g.UserId == userid).First(); 

_MyContext.GroupUser.Remove(groupToDel); 
_MyContext.SaveChanges(); 
+0

К сожалению, это не сработало, оно просто отправляет меня на link/Unsubscribe/GroupId. Но, возможно, вы правы. Я смотрю слишком далеко: D – user3634184

+0

'_MyContext' - это ваш класс, который наследуется от' DbContext'? Я не вижу, как этот код может перенаправить вас. Если он не существует исключений, и «возвращать RedirectToAction (« Index »,« Group »),' вызывается, он должен быть удален из базы данных –

+0

Это из-за моей ссылки? ' UnSubscribe ' – user3634184

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