Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как правите версии в Nhibernate?

Не. Заключванията се поставят само за степента на транзакция, която в уеб приложение приключва, когато приключи заявката. Освен това типът по подразбиране на режима на изолиране на транзакция е Извършено четене което означава, че блокировките за четене се освобождават веднага щом операторът select приключи. Ако четете и правите редакции в една и съща заявка и транзакция, можете да поставите заключване за четене и писане на дадения ред, което би попречило на други транзакции да пишат или четат от този ред. Този тип контрол на паралелността обаче не работи добре в уеб приложение.

Това би се случило, ако се използва [оптимистична едновременност]. В NHibernate оптимистичната паралелност работи чрез добавяне на поле за версия . Командите за запазване/актуализиране се издават с версията, на която е базирана актуализацията. Ако това се различава от версията в таблицата на базата данни, нито един ред не се актуализира и NHibernate ще хвърли.

Не, заключването се освобождава в края на заявката.

Като цяло най-добрият ви залог е да изберете оптимистична едновременност с полета за версия, управлявани от NHibernate.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете ред с максимална стойност в една колона

  2. SQL Server UNION - Какво е поведението по подразбиране ORDER BY

  3. Как да направя резервно копие на база данни в друг компютър в Sql Server 2008?

  4. Разбиране на проблема с мръсното четене със SQL Server

  5. Проверете дали даден параметър е нулев или празен в съхранена процедура