У меня есть приложение + веб-сайт, в котором используется API, где вы можете приобрести товары для виртуальной валюты.Как запретить вызовы API более одного раза
Когда вы купили товар, вы можете вернуть деньги и вернуть свои деньги.
Ниже приведен какой-то псевдокод, чтобы его объяснить.
апи/заказ/возврат/{OrderID}
if(order.status == accepted)
{
order.status = refunded;
user.AddMoney(order.Amount);
dbcontext.saveChanges();
}
проблема, если API вызывается как апи/заказ/возврат/21 несколько раз довольно быстро, он будет работать до того SaveChanges(); является успешным и будет AddMoney(); для пользователя более одного раза для одного и того же заказа.
Кто-нибудь знает решение для этого?
Благодаря
Это может помочь. http://stackoverflow.com/questions/13404061/how-can-i-lock-a-table-on-read-using-entity-framework Вам необходимо заблокировать таблицу в течение всей транзакции. – CollinD
Спасибо CollinD, это привело меня к поиску того, что мне нужно! – que