Pregunta

¿Alguien ha probado el ActiveRecord Intro Sample con C # 3.5? De alguna manera tengo la sensación de que la muestra está completamente equivocada o simplemente desactualizada. La configuración XML es simplemente errónea:

<add key="connection.connection_string" value="xxx" />

debería ser:

<add key="hibernate.connection.connection_string" value="xxx" />

(si entiendo la sintaxis de configuración nhibernate derecha ..)

Me pregunto qué estoy haciendo mal. Obtengo un " No se pudo realizar ExecuteQuery para el usuario " Excepción al llamar a Count () en el modelo de usuario.

No tengo idea de lo que esto puede ser. La fuente del tutorial difiere mucho de la fuente en la página (especialmente en la configuración XML), y es una muestra de VS2003 con una sintaxis diferente en la mayoría de las cosas (no en genéricos, etc.).

¿Alguna sugerencia? ActiveRecord se ve increíble ...

¿Fue útil?

Solución

(Esto fue demasiado largo para una publicación de comentarios)

[@Tigraine] Según sus comentarios en mi respuesta anterior, parece que el error no radica en la configuración, sino en una de sus entidades. Retirar el " hibernate " corrigió la configuración para que le ofrezca el error real, que parece ser que la entidad "Publicar" no se atribuye correctamente a ActiveRecord para crear su mapeo.

Si profundiza en el error que da, es probable que tenga algunos detalles sobre qué pasa con "Publicar" ha fallado.

Algunas cosas comunes incluyen:

  • La clase no tiene el atributo [ActiveRecord] .
  • No hay ninguna propiedad con el atributo [PrimaryKey] .
  • No hay una tabla coincidente llamada "Publicar" (o " Publicaciones " si PluralizeTableNames es " true ").
  • No hay columnas coincidentes para las propiedades atribuidas.
  • Sus propiedades atribuidas y métodos públicos no son virtuales (este me mata todo el tiempo).

Otros consejos

La parte 'hibernate' de la clave se eliminó en NHibernate versión 2.0. Esta versión es correcta para NHibernate 2.0 en adelante:

<add key="connection.connection_string" value="xxx" />

Editar: Veo que el inicio rápido no viene con los archivos binarios para Castle y NHibernate. Debes haber descargado los binarios de alguna parte; sería útil si pudiera proporcionar el número de versión de su archivo NHibernate.dll.

Confusamente, al menos ALGUNOS de los inicios rápidos se actualizaron para ser actuales con NHibernate (NH) 2.0, pero la última versión de Castle 'adecuada' sigue siendo la 1.0 RC3 (hace casi un año), que no incluye NH 2.0.

Puedes ir de dos maneras. Puede continuar usando Castle RC3 y, en este caso, deberá agregar el prefijo 'hibernate' a sus entradas de configuración. O puede descargar una build de Castle desde el tronco, que debería ejecutarse contra NH 2.0. El problema con este último enfoque es que algunos de los otros cambios importantes introducidos en NH 2.0 podrían no solucionarse en el inicio rápido.

Eliminar el " hibernar. " parte para todas las entradas de configuración. Su primer ejemplo es el correcto.

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