0

我在带有 EF、Ninject 的 MVC 4 中使用 WebApi。在客户端我使用 knockout.js 结束它从 UI 中删除我的条目,但它仍在 DB 中。添加,更新操作工作正常。

客户端代码:

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

网络API

 // 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);
    }

从哪儿开始?走哪条路?

4

1 回答 1

2

如果你想删除一个实体是不够的,从它的集合中删除它是不够的。您需要调用DbContext.SaveChanges()以提交事务并将更改保存到数据库中:

public void Delete(int userId)
{
    var user = Get(userId);
    _db.Users.Remove(user);
    _db.SaveChanges();
}
于 2013-02-01T14:30:39.713 回答