Здравствуйте, Эолинн, Вы писали:
Э>Привет, ребята!
Э>Вопрос такой, я хочу завести в базе счетчик посещений на некоторые страницы.
Э>Там надо просто извлечь из базы текущее значение в контроллере или во вьюшке, и приплюсовать единичку, записать снова в базу.
Э>Но если одновременно несколько пользователей будет заходить туда, то может получиться что в базу запишется неверное число. Так как один пока заходит, другой уже обновил базу и первый просто не учтет изменения которые сделал второй.
Э>Как можно решить эту проблему.
Э>Пока мысли такие что обернуть весь запрос в базу в транзакцию. Поможет ли это? Правильно ли я понимаю что если эти операции будут в транзакции, то тогда эти таблички будут залочены для всех других операций, до тех пор пока транзакция не завершится?
Не совсем, есть разные уровни изоляции транзакций.
Э>И есть ли какие-то штатные методы работы с такими вещами.
EF 6 позволяет выполнять изменения в транзакции. Вот пример:
Entity Framework и транзакции
Для вашего случая, нужный уровень изоляции: Serializable.