1

コードによるマッピングを使用したいので、クラスEmployee ( namespace NHibernateTests.Classes) とクラスEmployeeMappings ( namespace NHibernateTests.Mappings)があります。

私の全体の nhibernate 構成は、hibernate.cfg.xml現在次のようになっている xml ファイルに設定されています。

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
    <property name="connection.connection_string">User Id=NHIBERNATE;Password=NHIBERNATE;Data Source=XE</property>
    <property name="show_sql">false</property>
    <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>

    <mapping assembly="NHibernateTests"/>
  </session-factory>
</hibernate-configuration>

これにより、実行時エラーが発生します: No persister for: NHibernateTests.Classes.Employee

mapping要素の設定をいくつか試しました(そしてエラーを起こしました)が、うまくいきませんでした。hbm.xml 要素のリソースを設定する方法を読みましたが、by codeマッピングの答えが見つかりませんでした。

namespace NHibernateTests.Classes
{
    public class Employee
    {
        public virtual Address Address { get; set; }
        public virtual string FirstName { get; set; }
        public virtual int Id { get; set; }
    }
}


namespace NHibernateTests.Mappings
{
    public class EmployeeMappings : ClassMapping<Employee>
    {
        public EmployeeMappings()
        {
            this.Id(e => e.Id, mapper =>
            {
                mapper.Generator(Generators.HighLow);
            });
        }
    }
}
4

1 に答える 1