Nhibernate抛出错误没有持久性:

时间:2012-08-26 23:52:54

标签: nhibernate

映射文件:

<?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“。

2 个答案:

答案 0 :(得分:3)

第一个错误“No persister for ...”是未将映射文件设置为嵌入式资源的结果。

当前错误与您的id定义有关。看起来您的<id>定义中有一些文字。也许一些不允许的空格?尝试将其写为:

<id name="id" access="field" column="uid" generator="native" />

如果这没有帮助,请尝试使用除id之外的其他名称作为字段名称。也许是Id

答案 1 :(得分:0)

在visual studio中,记得将.hbm.xml文件的属性:“编译操作”更改为:“嵌入式资源”