Записи удаляются из нокаут-интерфейса, но не из БД

Я использую WebApi в MVC 4 с EF, Ninject. В клиенте я использую knockout.js end, он удаляет мои записи из пользовательского интерфейса, но он все еще находится в БД. Добавить, обновить действие отлично работает.

Код клиента:

 self.removeUser = function (user) {
              var conj = ko.toJS(user);
              var json = JSON.stringify(conj);
              var Id = user.Id();
              $.ajax({
                  url: API_URL + Id,
                  cache: false,
                  type: 'DELETE',
                  contentType: 'application/json; charset=utf-8',
                  data: '',
                  success: function () {
                      self.Users.remove(user);
                  }
              });
          }

WebAPI

 // DELETE api/user/5
public HttpResponseMessage Delete(int id)
{
    _userRepository.Delete(id);
    return Request.CreateResponse(HttpStatusCode.NoContent);
}

вместилище

  public void Delete(int userId)
    {
        var user = Get(userId);
        _db.Users.Remove(user);
    }

Когда начать? Какой путь?

1 ответ

Решение

Если вы хотите удалить объект, его недостаточно, чтобы удалить его из его коллекции. Вам нужно позвонить DbContext.SaveChanges() чтобы зафиксировать транзакцию и сохранить ваши изменения в БД:

public void Delete(int userId)
{
    var user = Get(userId);
    _db.Users.Remove(user);
    _db.SaveChanges();
}
Другие вопросы по тегам