0

映射文件:

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

我尝试将映射文件设置为资源,但这只是将错误消息更改为“Unhandled Exception: NHibernate.MappingException: PlayHibernate.Employee.hbm.xml (5,31): XML validation error: The element 'id' in namespace “urn:nhibernate-mapping-2.2”不能包含文本。---> System.Xml.Schema.XmlSchemaValidationExceptio n:命名空间“urn:nhibernate-mapping-2.2”中的元素“id”不能包含文本。”

4

2 回答 2

3

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

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

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

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

于 2012-08-27T12:45:46.800 回答
0

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

于 2013-08-11T19:40:51.263 回答