Принимая класс продукта
public class Product
{
public String Name {get;set;}
public Decimal Price {get;set;}
public Int32 QuantityStock {get;set;}
}
Теперь предположим, что два клиента, которые «запрашивают» один и тот же продукт одновременно, назвали «Продукт 1» со следующими значениями
Имя = "Продукт 1"
Цена = 10
Количество товара = 100
Первый клиент увеличит количествоStockStock до 110
Тогда второй клиент уменьшит количествоStockStock до 90
.
Таким образом, я получил нехватку 10 QuantityStock для этого продукта, потому что второй клиент обновил количествоStockStock с исходного значения "100" вместо первого обновления клиента "110" ...
Исходное значение = 100
Первое обновление клиента 100 => 110
Второе обновление клиента 100 => 90
Как я могу предотвратить такое поведение?
Примечание. Я работаю в трехуровневой архитектуре с шаблоном репозитория и библиотекой Entreprise.