Предположим, я писал приложение, в котором пользователям приходилось записывать встречи (в моем случае пользователь работает в паре с сотрудником, и этот сотрудник выполняет работу для этого пользователя в определенное время суток).Как бы я гарантировал, что 2 пользователя не закончили бронирование одной и той же встречи с помощью NHibernate или Entity Framework?Я бы открыл транзакцию и сделал бы что-то вроде:
BeginTransaction();
if(!AppointmentBooked(userId, employeeId, time)) // read
BookAppointment(userId, employeeId, time); // write
CommitTransaction();