C# 元素';类别';在命名空间中';urn:nhibernate-mapping-2.2';具有无效的子元素';财产';

C# 元素';类别';在命名空间中';urn:nhibernate-mapping-2.2';具有无效的子元素';财产';,c#,nhibernate,hbm,C#,Nhibernate,Hbm,hbm文件是: <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name="EMSApplication.Domain.Employee, EMSApplication.Domain" table="ems_Employees" proxy="EMSApplication.Domain.IEmployee, EMSApplication.Domain"> <property

hbm文件是:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
    <class name="EMSApplication.Domain.Employee, EMSApplication.Domain" table="ems_Employees" proxy="EMSApplication.Domain.IEmployee, EMSApplication.Domain">
    <property name="Username">
        <column name="Username" length="40" sql-type="nvarchar" not-null="true" index="Username"/>
    </property>
    <property name="Firstname">
        <column name="Firstname" length="40" sql-type="nvarchar" not-null="true" index="Firstname"/>
    </property>
    </class>
</hibernate-mapping>
<object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32">
    <property name="DbProvider" ref="DbProvider"/>
    <property name="MappingResources">
    <list>
        <value>assembly://EMSApplication/EMSApplication.Domain/EMSApplication.hbm.xml</value>
    </list>
    </property>
    <property name="HibernateProperties">
    <dictionary>
        <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
        <entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
        <entry key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
        <entry key="proxyfactory.factory_class" value="NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate"/>
        <entry key="show_sql" value="true"/>
        <entry key="hbm2ddl.auto" value="update"/>
        <entry key="cache.use_query_cache" value="true"/>
    </dictionary>
    </property>

    <property name="ExposeTransactionAwareSessionFactory" value="true" />
</object>
这是IEEMPLOYEE.cs:

namespace EMSApplication.Domain {
    public class Employee : IEmployee {
    private string username;
    private string firstname;

    public virtual string Firstname {
        get {
        return firstname;
        }
        set {
        firstname = value;
        }
    }

    public virtual string Username {
        get {
        return username;
        }
        set {
        username = value;
        }
    }
    }
}
namespace EMSApplication.Domain {
    interface IEmployee {
    string Firstname { get; set; }
    string Username { get; set; }
    }
}
现在我得到了一个例外:

命名空间“urn:nhibernate-mapping-2.2”中的元素“class”已 命名空间中的子元素“属性”无效 “urn:nhibernate-mapping-2.2”。预期可能的要素清单: '元,子选择,缓存,同步,注释,元组化,id, 命名空间“urn:nhibernate-mapping-2.2”中的复合id为“”

我正在将Spring.Net与NHibernate一起使用。hbm文件的调用是:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
    <class name="EMSApplication.Domain.Employee, EMSApplication.Domain" table="ems_Employees" proxy="EMSApplication.Domain.IEmployee, EMSApplication.Domain">
    <property name="Username">
        <column name="Username" length="40" sql-type="nvarchar" not-null="true" index="Username"/>
    </property>
    <property name="Firstname">
        <column name="Firstname" length="40" sql-type="nvarchar" not-null="true" index="Firstname"/>
    </property>
    </class>
</hibernate-mapping>
<object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32">
    <property name="DbProvider" ref="DbProvider"/>
    <property name="MappingResources">
    <list>
        <value>assembly://EMSApplication/EMSApplication.Domain/EMSApplication.hbm.xml</value>
    </list>
    </property>
    <property name="HibernateProperties">
    <dictionary>
        <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
        <entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
        <entry key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
        <entry key="proxyfactory.factory_class" value="NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate"/>
        <entry key="show_sql" value="true"/>
        <entry key="hbm2ddl.auto" value="update"/>
        <entry key="cache.use_query_cache" value="true"/>
    </dictionary>
    </property>

    <property name="ExposeTransactionAwareSessionFactory" value="true" />
</object>

assembly://EMSApplication/EMSApplication.Domain/EMSApplication.hbm.xml
项目结构为:

任何帮助都会很有帮助


谢谢。

您缺少了
id
元素,它位于架构中所有属性之前。

我的类中确实缺少id元素和属性。泰!