Pregunta

¿Qué tipo de consideraciones existen para migrar una aplicación desde NHibernate 1,2 a 2,0?¿Qué son los cambios importantes vs.¿Cambios recomendados?

¿Hay problemas de mapeo?

¿Fue útil?

Solución

Cambios importantes en NHibernate 2.0

Si tiene una buena cobertura de prueba, es un trabajo complicado.

Editar:Actualizamos esta mañana.No hay nada importante.Tienes que Flush() la sesión después de eliminarla.El espacio de nombres Expression pasó a llamarse Criterion.Todo esto está cubierto en el enlace de arriba.Las asignaciones no necesitan cambios.Es bastante transparente.Ah, y transacciones en todos lados, pero probablemente ya lo estabas haciendo.

Por cierto, aquí hay un vistazo interesante a los cambios: http://codebetter.com/blogs/patricksmacchia/archive/2008/08/26/nhibernate-2-0-changes-overview.aspx

Otros consejos

Encontré la respuesta aquí:

http://blog.domaindotnet.com/2008/08/24/nhibernate-20-gold-released-must-wait-for-linq-to-nhibernate/

versión dorada 2.0.0.GA

CAMBIOS IMPORTANTES de NH1.2.1GA a NH2.0.0

  • Infraestructura

  • Tiempo de compilación

    • El espacio de nombres NHibernate.Expression pasó a llamarse NHibernate.Criterion
    • IInterceptor tiene métodos adicionales.(IsUnsaved pasó a llamarse IsTransient)
    • Estrategia de nombre
    • Yo tecleo
    • IEntityPersister
    • Tipo de versión I
    • IBatcher
    • Tipo de colección de usuarios
    • Tipo de usuario mejorado
    • IPropertyAccessor
    • ValueTypeType renombrado a PrimitiveType
  • Posibles cambios importantes para los marcos externos

  • Se movieron varias clases entre espacios de nombres.
  • Se han cambiado los nombres de varias clases (para que coincidan con los nombres de Hibernate 3.2)
  • La interfaz ISession tiene métodos adicionales
  • Proveedor de ICache
  • ICriterio
  • CriteriosConsultaTraductor

  • Tiempo de inicialización

    • La sección <nhibernate>, en App.config, ya no es compatible y será ignorada.El esquema de configuración para el archivo de configuración y App.config ahora es idéntico y el nombre de la sección App.config es:<configuración-hibernación>
    • <hibernate-configuration> tiene un esquema diferente y todos los nombres de propiedades están verificados
    • las propiedades de configuración ya no tienen el prefijo “hibernate”. Si antes especificabas “hibernate.dialect”, ahora especificas solo “dialecto”.
    • Todas las consultas nombradas se validarán en el momento de la inicialización, se generará una excepción si alguna no es válida (se puede deshabilitar si es necesario)
    • Controles más estrictos para las clases de proxy (todos los métodos públicos deben ser virtuales)

  • tiempo de ejecución

    • SaveOrUpdateCopy() devuelve una nueva instancia de la entidad sin cambiar la original
    • AutoFlush no ocurrirá fuera de una transacción: las transacciones de la base de datos nunca son opcionales, toda comunicación con la base de datos debe ocurrir dentro de una transacción, independientemente de los datos que lea o escriba.
    • NHibernate devolverá consultas largas para recuento (*) en SQL Server
    • <fórmula> debe contener paréntesis cuando sea necesario
    • Estos nombres de funciones HQL pueden causar conflictos en sus nombres reservados HQL:
      • subcadena
      • localizar
      • recortar
      • longitud
      • longitud_bit
      • juntarse
      • nulo
      • abdominales
      • modificación
      • raíz cuadrada
      • superior
      • más bajo
      • elenco
      • extracto
      • concat
      • fecha y hora actual
      • fecha del sistema
      • segundo
      • minuto
      • hora
      • día
      • mes
      • año
      • cadena
    • <cualquier> cuando meta-type=”class” el tipo persistente es una cadena que contiene Class.FullName
      • Para establecer un parámetro en una consulta debe usar SetParameter(”paraName”, typeof(YourClass).FullName, NHibernateUtil.ClassMetaType)

  • Cartografía

  • <cualquiera> :El metatipo predeterminado es "cadena" (era "clase")
  • Licenciado bajo: CC-BY-SA con atribución
    No afiliado a StackOverflow
    scroll top