currentsessioncontext fluent nhibernate如何做?
我正在尝试使用fluent处理每个请求的会话。我遵循的是nhibernate食谱中的“配方”,但是它使用了nhibernate配置文件 我不确定什么更好,但现在我坚持使用fluent配置,因为我不知道如何将nhibernate配置文件设置为使用fluent映射和vanilla nhibernate映射(hbm文件) 但是,如果我使用它,它会抛出一个错误,因为我没有使用nhibernate配置文件currentsessioncontext fluent nhibernate如何做?,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我正在尝试使用fluent处理每个请求的会话。我遵循的是nhibernate食谱中的“配方”,但是它使用了nhibernate配置文件 我不确定什么更好,但现在我坚持使用fluent配置,因为我不知道如何将nhibernate配置文件设置为使用fluent映射和vanilla nhibernate映射(hbm文件) 但是,如果我使用它,它会抛出一个错误,因为我没有使用nhibernate配置文件 那么,如何将其更改为使用fluent配置?或者我甚至不需要执行此步骤吗?(即是否在内部完成?您需要告
那么,如何将其更改为使用fluent配置?或者我甚至不需要执行此步骤吗?(即是否在内部完成?您需要告诉NHibernate如何处理会话上下文。以下措施可能有效:
Fluently.Configure()
...
.ExposeConfiguration(cfg => cfg.SetProperty(
Environment.CurrentSessionContextClass,
"web")
另外,与此无关:您正在EndRequest上处理SessionFactory。这是一个错误。如果您的项目是Asp.Net网站(不是web应用程序),那么在Global.asax中您应该这样使用
NHibernate.Cfg.Environment.CurrentSessionContextClass
你能详细解释一下“EndRequest是一个错误”这一部分吗?我只是在遵循nhibernate cookbook 3.0中的操作。啊,我明白你的意思了。是的,我的意思是结束当前会话,而不是会话工厂(那将是糟糕的lol)。
CurrentSessionContext.Bind(session);
Fluently.Configure()
...
.ExposeConfiguration(cfg => cfg.SetProperty(
Environment.CurrentSessionContextClass,
"web")