今天开发的时候又遇到一个极其奇怪的问题,本人使用asp.net 2.0+NHibernate开发一个Publish系统,在使用NHibernate做持久层访问数据库的时候收到Exception:element was not found in the configuration file
.
但是很奇怪,我都是使用的跟标准一样的配置方法啊,并且是用codesmith生成的配置文件和Persistent Class,应该不会有错啊?????
仔细观察配置文件后,发现有hibernate-mapping xlmns=”urn:nhibernate-mapping-2.0”,似乎不对,我的nhibernate的版本似乎是1.2的,那是不是应该将nhibernate-mapping改成2.2呢???先试试吧,将xlmns改成urn:hibernate-mapping-2.2,然后通过帮助文件知道要把所有的persistent class中的properties都改成virtual的。然后build,run,debug。
靠。。。。。居然还是不对,但是这个时候的错误变成了Could not compile the mapping document,应该是出了其他问题了。
怎么办呢???自己搞定吧,把NHibernate的solution找出来,编译出assembly,挂到我的项目中,然后打上断点,看看是那个该死的地方出了毛病
………….
哈哈,搞定了,原来是这样的。先来看看我原先的mapping file:
<
hibernate-mapping
xmlns
=
"urn:nhibernate-mapping-2.2">
<
class
name
=
"MyPublisher.Entities.ModuleInfo, MyPublisher.Entities"table="`Module`">
<
id
name
=
"Id"type