Я следовал этому руководству: http://nhforge.org/blogs/nhibernate/archive/2011/03/03/effective-nhibernate-session-management-for-web-apps.aspx
При попытке загрузить страницу (mvc 3) я не получаю сообщение об ошибке «нет сеанса, привязанного к текущему контексту».
public static ISessionFactory BuildSessionFactory()
{
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008 //
.ConnectionString(@"Server=.\SQLExpress;Database=db1;Uid=dev;Pwd=123;")
.ShowSql())
//.ExposeConfiguration(c => c.SetProperty("current_session_context_class", "web"))
//.CurrentSessionContext<CallSessionContext>()
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf<User>())
.ExposeConfiguration(cfg => new SchemaExport(cfg)
.Create(false, false))
.BuildSessionFactory();
}
Фактическая ошибка в моем файле Repository.cs:
Строка 114: общедоступная виртуальная T Get (int id) Строка 115: {Строка 116: return _sessionFactory.GetCurrentSession (). Get (id);Строка 117:} Строка 118:
Когда я отлаживал его, _sessionFactory не был нулевым или чем-то еще, просто он не мог найти связанную сессию.
У меня подключен модуль httpmoduleв моем web.config, и он действительно запускается, так что это не проблема.
В моей конфигурации nhibernate я попробовал оба:
.ExposeConfiguration(c => c.SetProperty("current_session_context_class", "web"))
и
.CurrentSessionContext<CallSessionContext>()
Но это не сработало.