Pregunta

Acaba de comenzar el aprendizaje NHiberate. Parece bastante tedioso para escribir archivos de configuración apropiados hbm.xml para cada tabla de base de datos.

La pregunta es ¿puede leer NHibernate en tablas y recuperar automáticamente las relaciones y necesitaba archivo de configuración, así como clases de asignador de bases de datos para usted? Parece que el programador todavía tiene que hacer un montón de trabajo de tierra inicialmente. Entonces me encontré con CodeSmith que consiguió plantillas para NHiberate? Qué llenar el vacío?

¿Fue útil?

Solución

Puede utilizar plantillas de código, pero esto todavía crea un dolor en mi humilde opinión. La mejor manera es usar Fluido NHibernate . Tienen una nueva característica de auto-Mapper, que utiliza la configuración por convención. No hay archivos de asignación, sólo hace que los supuestos que se utilizan nombres similares y pueden definir reglas de cómo convertir un nombre de entidad a un nombre de tabla.

Otros consejos

La generación de código puede llenar ese vacío muy bien, empecé a usar CodeSmith, pero luego hice que un elemento de pago por lo que se trasladó a MyGeneration . Mi enfoque es atacar la base de datos primero, código de generación de los archivos de asignación y generación clases si no existen ya. Eso hace que algo va muy rápido, ideal para la creación de un prototipo y datos de prueba.

Los archivos de asignación, clases y DB se cambian a menudo entonces con la mano. En algunos casos he intentado conseguir la generación de código para trabajar como parte de CI - pero está probado difícil hacer eso, a menos que seas disciplinado acerca de dónde parte que estás cambios en el código hechos a mano. Las clases parciales fueron una ayuda, pero sigue siendo un problema resuelto para llegar a todo el equipo en la misma página, a nadie le gusta tener su código sobrescrito por una herramienta, aunque luego se puede deshacer y combinar.

Yo trabajo para CodeSmith ... Por favor, tenga en cuenta que MyGeneration no se ha actualizado en mucho tiempo lo que significa que carece de apoyo también. CodeSmith es totalmente compatible con sus productos y plantillas. Esto significa cualquier error plantilla también serán fijos y verificados por CodeSmith.

Gracias

-Blake Niemyjski

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top