Я очень новичок в NHibernate, и меня немного смущает вопрос о том, где должны функционировать функции.
У меня есть следующее решение
1) MyProject.Web (приложение для веб-форм)
2) MyProject.Domain (библиотека классов)
- nhibernate.config
- product.hbm.xml
Так ли это правильно, я должен поместить следующий метод в IHttpModule? (я не могу использовать глобальный asax, поскольку он используется CMS, на которой я работаю)
Где должна находиться строка соединения?
HTTPModule в приложении веб-форм
private static ISessionFactory CreateSessionFactory()
{
var cfg = new Configuration().Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "nhibernate.config"));
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionStringName, System.Environment.MachineName);
NHibernateProfiler.Initialize();
return cfg.BuildSessionFactory();
}
nhibernate.config
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="RBL.Domain">
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="adonet.batch_size">16</property>
<property name="current_session_context_class">web</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<mapping assembly="RBL.Domain"/>
</session-factory>
</hibernate-configuration>