Nhibernate与Asp.net WebForms - 每个请求的会话

jmw*_*jmw 0 asp.net nhibernate orm

我正在使用一个HttpModule来打开一个跨越每个请求的会话,它可以很好地处理延迟加载和一切.

我担心的是,由于每个请求打开一个新会话(并将其存储在HttpContext.Current.Items中),它会为每个请求打开一个会话,甚至包括对.css文件和图像的请求.我记得读过会话创建是一个非常轻松的操作(虽然不知道交易)但是无论如何似乎没有必要为.css文件的请求打开一个会话?

任何人都有这方面的想法,这是一个问题和/或我做了一些愚蠢的事情?

提前致谢

dev*_*vio 8

  • 仅在文件类型为.aspx或.ashx时才创建会话对象:

        switch (context.Request.CurrentExecutionFilePathExtension.ToLower())
        {
            case ".aspx":
            case ".ashx":
                context.Items[ContextKey] = CreateMySession();
                break;
        }
    
    Run Code Online (Sandbox Code Playgroud)
  • 或者在属性getter中封装会话创建,并清理是否检查 session != null