Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
currentsessioncontext fluent nhibernate如何做?_Nhibernate_Fluent Nhibernate - Fatal编程技术网

currentsessioncontext fluent nhibernate如何做?

currentsessioncontext fluent nhibernate如何做?,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我正在尝试使用fluent处理每个请求的会话。我遵循的是nhibernate食谱中的“配方”,但是它使用了nhibernate配置文件 我不确定什么更好,但现在我坚持使用fluent配置,因为我不知道如何将nhibernate配置文件设置为使用fluent映射和vanilla nhibernate映射(hbm文件) 但是,如果我使用它,它会抛出一个错误,因为我没有使用nhibernate配置文件 那么,如何将其更改为使用fluent配置?或者我甚至不需要执行此步骤吗?(即是否在内部完成?您需要告

我正在尝试使用fluent处理每个请求的会话。我遵循的是nhibernate食谱中的“配方”,但是它使用了nhibernate配置文件

我不确定什么更好,但现在我坚持使用fluent配置,因为我不知道如何将nhibernate配置文件设置为使用fluent映射和vanilla nhibernate映射(hbm文件)

但是,如果我使用它,它会抛出一个错误,因为我没有使用nhibernate配置文件


那么,如何将其更改为使用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")