Генерация непересекающихся встреч в базе данныхC#

Место общения программистов C#
Ответить
Anonymous
 Генерация непересекающихся встреч в базе данных

Сообщение Anonymous »

Я в основном пытаюсь решить следующий сценарий наилучшим образом в Entity Framework Core.
Предположим, что у вас есть система записи на встречи с таблицей для встреч. >
В моем случае это веб-приложение ASP.NET Core (.NET Core 8.0).
Несколько пользователей могут записываться на встречи, но встречи не могут пересекаться по времени.Я не смогу убедиться в отсутствии перекрывающихся встреч с первичным ключом, поскольку дата и время начала и окончания выбираются свободно.
приложение использует Entity Framework Core для подключения к моей базе данных. Как мне гарантировать, что встречи в моей таблице никогда не перекрываются?
Моей первой мыслью, конечно, было просто проверить перед вставкой новой встречи, я мог бы проверить, есть ли уже встреча, которая перекрывается во времени. Но разве в случае с двумя одновременными пользователями не будет ли возможно, что оба пользователя одновременно попытаются записаться на перекрывающиеся встречи?
Приложение получит встречу первого пользователя, проверьте, есть ли там являются дублирующими назначениями, но это не так. Теперь встреча должна быть забронирована, но тем временем зарезервирована встреча другого пользователя. Здесь он также проверит перекрывающиеся встречи и не обнаружит их, поскольку первая встреча пользователя еще не вставлена. Обе вставки будут происходить сразу друг за другом, и в базе данных будут две перекрывающиеся встречи.
Мой вопрос: каков наилучший подход к операторам условной вставки в Entity Framework Core?
Немного поискал, но так и не нашел ответа на свой вопрос.

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»