Не. Заключванията се поставят само за степента на транзакция, която в уеб приложение приключва, когато приключи заявката. Освен това типът по подразбиране на режима на изолиране на транзакция е Извършено четене което означава, че блокировките за четене се освобождават веднага щом операторът select приключи. Ако четете и правите редакции в една и съща заявка и транзакция, можете да поставите заключване за четене и писане на дадения ред, което би попречило на други транзакции да пишат или четат от този ред. Този тип контрол на паралелността обаче не работи добре в уеб приложение.
Това би се случило, ако се използва [оптимистична едновременност]. В NHibernate оптимистичната паралелност работи чрез добавяне на поле за версия . Командите за запазване/актуализиране се издават с версията, на която е базирана актуализацията. Ако това се различава от версията в таблицата на базата данни, нито един ред не се актуализира и NHibernate ще хвърли.
Не, заключването се освобождава в края на заявката.
Като цяло най-добрият ви залог е да изберете оптимистична едновременност с полета за версия, управлявани от NHibernate.