Я пытаюсь свободно использовать сеанс для каждого запроса. Я следую "рецепту" из поваренной книги nhibernate, однако он использует файл конфигурации nhibernate.
Я не уверен, что лучше, но сейчас я придерживаюсь свободной конфигурации только потому, что я не знаю, как настроить файл конфигурации nhibernate для использования свободного сопоставления и vanilla 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.
Итак, как мне изменить его, чтобы использовать плавную конфигурацию? Или мне даже не нужно делать этот шаг? (Т.е. выполняется ли это внутренне?)