0

我在EF,Ninject MVC 4中使用WebApi。 在客戶端我使用knockout.js結束它從UI中刪除我的條目,但它仍然在數據庫中。 添加,更新操作正常。條目刪除從基諾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); 
    } 

從哪裏開始?走哪條路?

+1

你在哪裏調用'_db.SaveChanges()'後您刪除? – nemesv

+0

這是太長而無眠的夜晚。謝謝。你可以把它作爲答案=)) –

回答

2

如果你想刪除一個實體是不夠的,從它的集合中刪除它。你需要調用DbContext.SaveChanges()以提交事務,並堅持更改爲DB:

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