映射文件:
<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="PlayHibernate.Employee, PlayHibernate" lazy="false">
<id name="id" access="field">
<generator class="native"/>
</id>
<property name="name" access="field" column="name"/>
<many-to-one access="field" name="manager" column="manager" cascade="all"/>
</class>
</hibernate-mapping>
我尝试将映射文件设置为资源,但这只是将错误消息更改为 “未处理的异常:NHibernate.MappingException:PlayHibernate.Employee.hbm.xml (5,31):XML验证错误:命名空间'urn:nhibernate-mapp中的元素'id' ing-2.2'不能包含文字。 ---&GT; System.Xml.Schema.XmlSchemaValidationExceptio n:命名空间'urn:nhibernate-mapping-2.2'中的元素'id'不能包含tex T“。
答案 0 :(得分:3)
第一个错误“No persister for ...”是未将映射文件设置为嵌入式资源的结果。
当前错误与您的id
定义有关。看起来您的<id>
定义中有一些文字。也许一些不允许的空格?尝试将其写为:
<id name="id" access="field" column="uid" generator="native" />
如果这没有帮助,请尝试使用除id之外的其他名称作为字段名称。也许是Id
。
答案 1 :(得分:0)
在visual studio中,记得将.hbm.xml文件的属性:“编译操作”更改为:“嵌入式资源”