sql >> Databasteknik >  >> RDS >> Sqlserver

Hur gör du versionshantering i Nhibernate?

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.



  1. Utmaningar med att skala Moodle PostgreSQL-databasen

  2. Konvertera ett koldatum till mysql tidsstämpel.

  3. Generera PHP-array från MySQL med nyckelvärde från id-kolumnen

  4. Varför mysqli_real_escape_string har ett anslutningsobjekt som en första parameter