Я хочу использовать сопоставление по коду, поэтому у меня есть класс Employee (namespace NHibernateTests.Classes
) и класс EmployeeMappings (namespace NHibernateTests.Mappings
).
Вся моя конфигурация nhibernate задается в файле xml hibernate.cfg.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>
Что дает мне ошибку времени выполнения: Нет персистента для: 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);
});
}
}
}