Я думаю, это то, что вы должны сделать
[HttpDelete]
public HttpResponseMessage DeleteCart(int id)
{
//not sure what it does?
if (IsNetworkAvailable(0))
{
var del = db.Carts.First(e => e.Id == id);
db.Carts.Remove(del);
db.SaveChanges();
return Request.CreateResponse(HttpStatusCode.OK, "Delete Successfully");
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "No Network");
}
}
Вы также можете подумать об использовании блоков try / catch при сохранении изменений после удаления для обработки непредвиденных исключений и возврата правильного сообщения обратно клиенту.
Вам следует избегать избыточных вызовов базы данных в вашем бэкэнде.Я считаю, что если вы хотите удалить только элемент из данной таблицы, вы должны только отправить идентификатор этого элемента.Если у вас есть проблема с доставкой идентификатора элемента, то может быть проблема с реализацией на стороне клиента.
Редактировать
Я хочучтобы добиться этого, когда бы я ни давал идентификатор пользователя, он удалит полные данные корзины этого пользователя
[HttpDelete]
public HttpResponseMessage DeleteUserCarts(int userId)
{
//not sure what it does?
if (IsNetworkAvailable(0))
{
var carts = db.Carts.Where(e => e.UID == userId);
db.Carts.RemoveRange(carts);
db.SaveChanges();
return Request.CreateResponse(HttpStatusCode.OK, "Delete Successfully");
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "No Network");
}
}