При использовании Entity Framework Core у нас есть две связанные сущности, в качестве упрощенного примера - курс и бронирование.Курс имеет список заказов.У курса также есть свойство для количества разрешенных заказов (это может быть различным для каждого курса).Вставляя запись в таблицу бронирований для определенного курса, мы хотим убедиться, что количество бронирований меньше, чем разрешенных бронирований.Каков наилучший способ избежать конфликтов параллелизма?Несколько человек будут создавать заказы одновременно.
Я пытался использовать EF для запуска выбора счетчика перед вставкой, но если два вставляются одновременно, это может привести к превышению лимита заказов..
Я думал об использовании столбца «Дата изменения» в таблице «Курс» и об использовании его в качестве проверки параллелизма, и, таким образом, обновляя его каждый раз, когда мы добавляем бронирование, но это может вызвать ошибку параллелизма, когда счет может иметьперешел с 4 на 5 и все еще не превышает 10, поэтому должен пройти без каких-либо проблем.Это также означало бы, что мы обновляем дополнительную таблицу, когда действительно все, что нас интересует, это вставка бронирования, если это возможно.