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

时间:2011-05-06 09:47:27

标签: asp.net nhibernate orm

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

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

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

提前致谢

1 个答案:

答案 0 :(得分:8)

  • 仅在文件类型为.aspx或.ashx:

    时才创建会话对象
        switch (context.Request.CurrentExecutionFilePathExtension.ToLower())
        {
            case ".aspx":
            case ".ashx":
                context.Items[ContextKey] = CreateMySession();
                break;
        }
    
  • 或将会话创建封装在属性getter中,并清理是否session != null