Question

Quelqu'un a-t-il essayé ActiveRecord Intro Sample avec C # 3.5? J'ai en quelque sorte le sentiment que l'échantillon est complètement faux ou tout simplement périmé. La configuration XML est tout simplement fausse:

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

devrait être:

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

(si je comprends la syntaxe nhibernate config right ..)

Je me demande ce que je fais mal. Je reçois un message «Impossible d'exécuter ExecuteQuery pour l'utilisateur». Exception lors de l'appel de Count () sur le modèle utilisateur.

Aucune idée de ce que cela peut être. La source du didacticiel diffère fortement de la source de la page (notamment dans la configuration XML). Il s’agit d’un exemple VS2003 avec une syntaxe différente pour la plupart des choses (pas de génériques, etc.).

Des suggestions? ActiveRecord a l'air génial ..

Était-ce utile?

La solution

(C'était trop long pour un commentaire)

[@ Tigraine] D'après vos commentaires sur ma réponse précédente, il semble que l'erreur ne réside pas dans la configuration, mais dans l'une de vos entités. Suppression du " hibernate " corrigé la configuration pour vous donner la véritable erreur, qui semble être que l'entité " Post " n’est pas correctement attribué à ActiveRecord pour créer son mappage.

Si l'erreur que vous indiquez se trouve plus loin dans la liste, elle contient probablement des informations détaillées sur "Post". échoué.

Certains points communs incluent:

  • La classe n'a pas l'attribut [ActiveRecord] .
  • Il n'y a pas de propriété avec l'attribut [PrimaryKey] .
  • Il n'y a pas de tableau correspondant appelé "Post". (ou "Posts" si PluralizeTableNames est "true").
  • Il n'y a pas de colonne correspondante pour les propriétés attribuées.
  • Vos propriétés et méthodes publiques attribuées ne sont pas virtuel (celle-ci me tue tout le temps).

Autres conseils

La partie "Mise en veille prolongée" de la clé a été supprimée dans NHibernate version 2.0. Cette version est correcte à partir de NHibernate 2.0:

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

Modifier: Je vois que le quickstart ne vient pas avec les binaires de Castle et NHibernate. Vous devez avoir téléchargé les fichiers binaires de quelque part; il serait utile de fournir le numéro de version de votre fichier NHibernate.dll.

Confus, au moins CERTAINES des solutions de démarrage rapide ont été mises à jour pour être à jour avec NHibernate (NH) 2.0, mais la dernière version "appropriée" de Castle est toujours la version 1.0 RC3 (qui a presque un an maintenant), qui n'inclut pas NH. 2.0.

Vous pouvez aller de deux manières. Vous pouvez continuer à utiliser Castle RC3 et dans ce cas, vous devrez en effet ajouter le préfixe "hibernate" à vos entrées de configuration. Vous pouvez également télécharger une construire de Castle à partir du coffre, qui devrait s'exécuter contre NH 2.0. Le problème avec cette dernière approche est que certaines des modifications majeures introduites dans NH 2.0 pourraient ne pas être corrigées lors du démarrage rapide.

Supprimez le " veille prolongée. " partie pour toutes les entrées de configuration. Votre premier exemple est le bon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top