Nie. Blokady są nakładane tylko na zakres transakcji, która w aplikacji internetowej kończy się wraz z zakończeniem żądania. Ponadto domyślnym typem trybu izolacji transakcji jest Zatwierdzony odczyt co oznacza, że blokady odczytu są zwalniane zaraz po zakończeniu instrukcji select. Jeśli czytasz i edytujesz w tym samym żądaniu i transakcji, możesz umieścić blokadę odczytu i zapisu w danym wierszu, co uniemożliwiłoby innym transakcjom zapis lub odczyt z tego wiersza. Jednak ten rodzaj kontroli współbieżności nie działa dobrze w aplikacji internetowej.
Stałoby się tak, gdyby użyto [optymistycznej współbieżności]. W NHibernate optymistyczna współbieżność działa poprzez dodanie pole wersji . Polecenia zapisu/aktualizacji są wydawane z wersją, na której została oparta aktualizacja. Jeśli różni się to od wersji w tabeli bazy danych, żadne wiersze nie są aktualizowane, a NHibernate wyrzuci.
Nie, blokada zostaje zwolniona na końcu żądania.
Ogólnie rzecz biorąc, najlepszym rozwiązaniem jest wybór optymistycznej współbieżności z polami wersji zarządzanymi przez NHibernate.