昨天一位同学跑来找我,说NHibernate总是调不通,报出错误说"找不到映射文件",我接过代码仔细查阅没发现任何错误;
文件如下
User.cs
User.xml
打开User.cs代码查看对应2.2版本的写法,没发现错误!
打开User.xml文件也没发现任何错误
由于是未找到映射文件考虑User.xml文件属性是否没有改为嵌入资源,
在文件上右键-> 属性 一看没问题。
哪问题出在哪里?用 Reflector 查看生成的DLL文件发现User.xml也存在
查了将近两个小时,我实在找不到原因了,后来干脆把User实体重新生成一次,换了一个工具 CodeSmith
然后将两个文件重新加入项目,这时生成测试 OK 这个我可蒙了,难到是格式原因;
经过详细对比,原来不一样的地方就是文件名 少了 hbm
映射文件的全名应是 XXX.hbm.xml写法
只有加入hbm hibernate 才认为是映射文件;
我汗 同学们一定要注意思了 文件名必须加 .hbm.xml