Я пытаюсь свободно использовать сеанс для каждого запроса.Я следую «рецепту» из кулинарной книги nhibernate, однако она использует конфигурационный файл nhibernate.
Я не уверен, что лучше, но сейчас я придерживаюсь свободно конфигурируемого только потому, что не знаю, как установитьФайл конфигурации nhibernate для использования плавного отображения и ванильного отображения nhibernate (файлы hbm).
namespace Demo.WebUI
{
public class MvcApplication : NinjectHttpApplication
{
public static ISessionFactory SessionFactory { get; private set; }
protected override void OnApplicationStarted()
{
SessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(
c => c.FromConnectionStringWithKey("test")))
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf
<Demo.Framework.Data.NhibernateMapping.UserMap>())
.ExposeConfiguration(BuidSchema)
.BuildSessionFactory();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
var session = SessionFactory.OpenSession();
//CurrentSessionContext.Bind(session);
}
protected void Application_EndRequest(object sender, EventArgs e)
{
//var session = CurrentSessionContext.Unbind(SessionFactory);
SessionFactory.Dispose();
}
}
}
Как вы можете видеть в Begin_Request, учебник по учебникам содержал
CurrentSessionContext.Bind(session);
Однако, если я использую этовыдает ошибку, поскольку у меня нет используемого файла конфигурации nhibernate.
Так как мне изменить его, чтобы использовать свободную конфигурацию?Или мне даже не нужно делать этот шаг? (Т. Е. Выполняется ли он внутренне?)