mvc - nhibernate vb net example
¿Cómo manejas la concurrencia en NHibernate? (3)
NHibernate admite 2 tipos de concurrencia optimista.
Puede hacer que verifique los campos sucios usando el atributo "optimistic-lock = dirty" en el elemento "class" en sus archivos de mapeo o puede usar "optimistic-lock = version" (que también es el predeterminado). Si está utilizando la versión, debe proporcionar un elemento "versión" en su archivo de mapeo que se asigna a un campo en su base de datos.
La versión puede ser de tipo Int64, Int32, Int16, Ticks, Timestamp o TimeSpan y se incrementa automáticamente al guardar. Consulte el Capítulo 5 en la documentación de NHibernate para obtener más información.
¿Cómo soportas la concurrencia optimista / pesimista usando NHibernate?
También puede ''simplemente'' comparar manualmente los números de versión (suponiendo que haya agregado una propiedad de Versión a su entidad).
Claramente optimista es la única opción sensata. A veces, por supuesto, tenemos que lidiar con escenarios locos sin embargo ...
NHibernate, por defecto, admite simultaneidad optimista. La concurrencia pesimista, por otro lado, se puede lograr a través del método ISession.Lock()
.
Estos problemas se discuten en detalle en este documento .