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.htmlI've uploaded my Visual Studio 2005 project to
http://verzend.be/excha开发者_Python百科nge/NhibernateCrap.rarDoes anybody know what I do wrong ?
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 (likeValidateMapping
or something). UseAddFile
,AddDocument
or similar instead, though I recommend usingAddAssembly
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.
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.
精彩评论