Nej. Lås placeras endast för omfattningen av en transaktion, som i en webbapplikation slutar när förfrågan avslutas. Standardtypen av transaktionsisoleringsläge är också Läs committed vilket innebär att läslås släpps så snart select-satsen avslutas. Om du läser och gör redigeringar i samma förfrågan och transaktion kan du placera ett läs- och skrivlås på raden till hands som skulle hindra andra transaktioner från att skriva till eller läsa från den raden. Den här typen av samtidighetskontroll fungerar dock inte bra i en webbapplikation.
Detta skulle hända om [optimistisk samtidighet] användes. I NHibernate fungerar optimistisk samtidighet genom att lägga till en versionsfält . Spara/uppdatera kommandon utfärdas med den version som uppdateringen baserades på. Om det skiljer sig från versionen i databastabellen uppdateras inga rader och NHibernate kommer att skickas.
Nej, låset släpps i slutet av begäran.
Sammantaget är din bästa insats att välja optimistisk samtidighet med versionsfält som hanteras av NHibernate.