В методе GetConfiguration
в вашем SessionBuilder
вместо
public Configuration GetConfiguration()
{
var configuration = new Configuration();
configuration.Configure();
return configuration;
}
показано на странице, на которую вы ссылаетесь, просто сделайте что-то вроде этого:
public Configuration GetConfiguration()
{
return Fluently.Configure()
.Database(/* your database settings */)
.Mappings(/* your mappings */)
.ExposeConfiguration(/* alter Configuration */) // optional
.BuildConfiguration();
}
Что касается дальнейшего запроса на обработку контекстов, у вас будет два класса, наследующих ISessionBuilder
, например. AspSessionBuilder
и WinAppSessionBuilder
, и введите соответствующий для текущего проекта. Вы должны использовать стратегию, изложенную Jamie Ide , а также , опубликованную как ответ на этот вопрос, для обработки контекстов вместо использования HttpContext
. Вам просто нужно изменить эту строку:
.ExposeConfiguration(x => x.SetProperty("current_session_context_class", "web")
на что-то вроде "call"
или "thread_static"
. Смотрите эту страницу в вики NHibernate Forge для хорошего объяснения различных типов контекстных сессий:
Контекстные сессии @ NHibernate Forge