¿Cómo se admite la concurrencia optimista/pesimista con NHibernate?¿Cómo se maneja la concurrencia en NHibernate?
Respuesta
NHibernate, de forma predeterminada, admite simultaneidad optimista. La concurrencia pesimista, por otro lado, puede lograrse a través del método ISession.Lock()
.
Estos problemas se discuten en detalle en this document.
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 del tipo Int64, Int32, Int16, Ticks, Timestamp o TimeSpan y se incrementan automáticamente al guardar. Consulte Chapter 5 en la documentación de NHibernate para obtener más información.
Capítulo 5 de los documentos ahora aquí: http://nhforge.org /doc/nh/en/index.html#mapping –
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 en su sano juicio. A veces, por supuesto, tenemos que lidiar con escenarios locos ...
- 1. NHibernate, ORM: ¿cómo se maneja la refactorización? ¿los datos existentes?
- 2. Problema de concurrencia de NHibernate
- 3. ¿Cómo maneja la Membresía/Roles cuando usa NHibernate?
- 4. ¿Cómo se maneja la importación cruzada?
- 5. PHP OOP - ¿Cómo se maneja la autorización?
- 6. ¿Cómo se maneja la memoria del código?
- 7. Strict versus NonStrict Estrategias de concurrencia de caché NHibernate
- 8. ¿Cómo se maneja la fecha de Javascript en otros idiomas?
- 9. ¿Cómo se maneja la finalización determinística en C#?
- 10. ¿Cómo se maneja la desconexión de socket en Java?
- 11. ¿Cómo se maneja la Autenticación HTTP básica en AVURLAsset?
- 12. ¿Cómo se maneja Python int y long?
- 13. ¿Cómo maneja Go la solicitud simultánea en Google App Engine
- 14. Concurrencia segura de la base de datos en ROR
- 15. Cómo evitar la concurrencia en la API del servicio web?
- 16. ¿Cómo se maneja la revocación de un certificado raíz?
- 17. Concurrencia en Amazon S3
- 18. ¿Cómo se maneja __eq__ en Python y en qué orden?
- 19. concurrencia en PHP
- 20. ¿Cómo se maneja savedInstanceState cuando se usa ViewPager?
- 21. ¿Cómo se maneja el fin de sesión en global.asax?
- 22. ¿Cómo se maneja el trabajo duplicado en las historias?
- 23. Rs refs en concurrencia
- 24. ¿Cómo se maneja el desequilibrio de datos en SVM?
- 25. Junit para probar la concurrencia
- 26. Cómo modelar concurrencia en pruebas unitarias?
- 27. ¿La clase NativeMethods se maneja especialmente en .NET?
- 28. ¿Cómo se maneja un botón al hacer clic en Android?
- 29. ¿Es posible la concurrencia en tornado?
- 30. ¿Cómo se maneja el HTML con formato incorrecto en Perl?
Gracias Jon por la respuesta rápida :-) –
Documentos de transacciones y concurrencia ahora aquí: http://nhforge.org/doc/nh/en/index .html # transacciones –
Documentos ahora aquí: http://nhibernate.info/doc/nh/en/index.html#transactions –