tutorial net mvc example ejemplo asp nhibernate

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 .