Stefan Steiger
Stefan Steiger

Reputation: 82296

No persister for: NHibernate.Examples.QuickStart.User

Question: I have an annoying problem with nhibernate.
The problem is I cannot get any example I find on the web to work...
I've now tried for two days...


The first problem was it wouldn't read the config file, so I had to move it into app.config / web.config.


The second problem is that whatever I do, I always get an error: No persister for: NHibernate.Examples.QuickStart.User
I've searched google and I did change the mapping to embeded ressource, and I did add the mapping to the config file, but nothing helps...

The example is from this page: https://www.hibernate.org/362.html

I've uploaded my Visual Studio 2005 project to
http://verzend.be/exchange/NhibernateCrap.rar

Does anybody know what I do wrong ?

Upvotes: 0

Views: 369

Answers (2)

R. Martinho Fernandes
R. Martinho Fernandes

Reputation: 234594

Here's everything I had to fix to get your code working:

  • Configuration.LoadMappingDocument only validates the mapping, but does not add it to the configuration, i.e. it works as documented. It should probably have a better name (like ValidateMapping or something). Use AddFile, AddDocument or similar instead, though I recommend using AddAssembly and having the mapping embedded as a resource;
  • In the mapping when you write <class name="NHibernate.Examples.QuickStart.User, NHibernate.Examples" the part after the comma is the assembly name. It should be <class name="NHibernate.Examples.QuickStart.User, NHibernateCrap", or you should change the assembly name (I'd recommend that);
  • I had to change the mapping XML namespace to the 2.2 one: <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  • Finally, because NHibernate lazy-loads by default, you have to make all properties virtual or disable lazy loading (not recommended). The example is actually wrong in this aspect;

For further learning I recommend you read Gabriel Schenker's NHibernate tutorials.

Upvotes: 3

Paco
Paco

Reputation: 8381

Clean up your namespace and assembly names and it will probably work. Please don't ask others to find your bug when your bug exists because the code is a mess.

Upvotes: 0

Related Questions