nHibernate: Impossible de localiser persister
De course VS2003, nHB 3.0.0.3001, essayez d'exécuter un test de l'unité par le biais de Gallion 3.2. Le code est à partir de la première session de "l'Été de nHibernate". J'obtiens l'erreur suivante lorsque vous tentez d'exécuter le test.
NHibernate.HibernateException: Unable to locate persister: DataTransfer.Customer
TargetSite: Void OnLoad(NHibernate.Event.LoadEvent, NHibernate.Event.LoadType)
HelpLink: null
at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.Get(String entityName, Object id)
at NHibernate.Impl.SessionImpl.Get(Type entityClass, Object id)
at NHibernate.Impl.SessionImpl.Get[T](Object id)
at DataAccessLayer.NhibernateDataProvider.GetCustomerById(Int32 customerId)
Mon très inculte conjecture est que le Client de la classe ne peut pas être vu. Mais à la fois l'unité de test et les couches d'accès aux données référence à la DataTransfer assemblée qui détient la classe de la Clientèle. Le Client de la classe est public et toutes les propriétés sont public virtuel.
Le nHB fichier de configuration se trouve dans le répertoire, et le Client de mappage de fichier est une ressource incorporée. Semble échouer sur la
ligne:
return session.Get<Customer>(customerId);
OriginalL'auteur P Hemans | 2010-12-03
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que votre fichier de mappage est nommé *.hbm.xml
Assurez-vous qu'il est réglé à une ressource incorporée.
Si ces derniers ne parviennent pas, le débogage et quand il échoue, les captures de l'exception et de regarder la InnerException - NHibernate est fantastique, les messages d'erreur caché là.
Espère que ceux thigs aider - dans le cas contraire, nous pouvons examiner quelques autres options (sauf 1 et 2 de résoudre 90% de persister problèmes)
Oui, le fichier de mappage a été nommé hbn.xml pas hbm.xml merci pour l'aide.
Je voudrais aussi ajouter 2,5 à votre liste assurez-vous que vous êtes le chargement de la cartographie de l'assemblée lors de la création de votre usine.
OriginalL'auteur Bob Palmer
Je suis à l'aide d'ActiveRecord pour l'entité de cartographie, a obtenu le même message d'erreur lorsque j'essaye d'utiliser ISession.Obtenir,
au lieu d'utiliser la configuration pour la récupération de session, comme ceci:
Je l'ai changé de travail par le biais de ActiveRecordMediator:
maintenant son travail..
ajouté pré-post code utilisé pour la récupération de Session
OriginalL'auteur Elad Tal
Sur votre hibernate.cfg.xml fichier, ajoutez ce code:
Fondamentalement, votre code:
OriginalL'auteur Willy David Jr