Nhibernate引发错误,没有针对以下对象的持久化程序:

Nhibernate引发错误,没有针对以下对象的持久化程序:,nhibernate,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"> <

映射文件:

<?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'不能包含文本。-->System.Xml.Schema.XmlSchemaValidationExceptio n:命名空间“urn:nhibernate-mapping-2.2”中的元素“id”不能包含tex t、 “

第一个错误“没有针对…”的持久化程序”是由于没有将映射文件设置为嵌入式资源

当前错误与您的
id
定义有关。看起来您的
定义中有一些文本。也许是一些不允许的空白?试着把它写成:

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

此外,如果这没有帮助,请尝试使用id以外的其他名称作为字段名。可能
Id

第一个错误“没有用于…”的持久器”是由于没有将映射文件设置为嵌入式资源

当前错误与您的
id
定义有关。看起来您的
定义中有一些文本。也许是一些不允许的空白?试着把它写成:

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


此外,如果这没有帮助,请尝试使用id以外的其他名称作为字段名。在visual studio中,请记住将.hbm.xml文件的属性“Compilation action”更改为:“Embedded resource”

在visual studio中,请记住将.hbm.xml文件的属性“Compilation action”更改为:“Embedded resource”

字段名不应该是问题。空白?我不知道。我猜他错过了一个
,非常感谢你指出错误“No persister for”是因为我的映射文件不是嵌入式资源。解决了我很久以来遇到的问题。字段名应该不是问题。空白?我不知道。我猜他错过了一个
,非常感谢你指出错误“No persister for”是因为我的映射文件不是嵌入式资源。解决了我一直存在的问题。