0

私はMVC4でEF、Ninjectを使用してWebApiを使用しています。クライアントでは、knockout.js endを使用して、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);
                  }
              });
          }

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

どこから始めれば?どちらに行くの?

4

1 に答える 1

2

エンティティを削除する場合は、コレクションから削除するだけでは不十分です。DbContext.SaveChanges()トランザクションをコミットし、変更をDBに保持するには、を呼び出す必要があります。

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