开发者

No persister for: NHibernate.Examples.QuickStart.User

开发者 https://www.devze.com 2022-12-15 20:42 出处:网络
Question: I have an annoying problem with nhibernate. The problem is I cannot get any example I find on the web to work...

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/excha开发者_Python百科nge/NhibernateCrap.rar

Does 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 (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.


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消