zoukankan      html  css  js  c++  java
  • ActiveRecord Enabling lazy load 方案

    lazy load AR 官的方案是

                BeginRequest += new EventHandler(OnBeginRequest);
                EndRequest 
    += new EventHandler(OnEndRequest);

                
    // Initialization code omitted

            }

            
    protected void Application_End(object sender, EventArgs e)
            
    {

            }


            
    public void OnBeginRequest(object sender, EventArgs e)
            
    {
        
    //        HttpContext.Current.Items.Add("nh.sessionscope", new SessionScope());
            }


            
    public void OnEndRequest(object sender, EventArgs e)
            
    {
                
    //try
                
    //{
                
    //    SessionScope scope = HttpContext.Current.Items["nh.sessionscope"] as SessionScope;
                
    //    if (scope != null)
                
    //    {
                
    //        scope.Dispose();
                
    //    }
                
    //}
                
    //catch (Exception ex)
                
    //{
                
    //    HttpContext.Current.Trace.Warn("Error", "EndRequest: " + ex.Message, ex);
                
    //}
            }


    但我用这个办法,后来建了个PageBase.cs
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using Castle.ActiveRecord;

    namespace Wz16.WebApp
    {
        
    public class PageBase : System.Web.UI.Page
        
    {
            
    protected SessionScope CurSessionScope ;
            
    protected override void OnInit(EventArgs e)
            
    {
                CurSessionScope 
    = new SessionScope();
                
    base.OnInit(e);
            }


            
    public override void Dispose()
            
    {
                
    try
                
    {
                    
    if (CurSessionScope != null)
                    
    {
                        CurSessionScope.Dispose();
                    }

                }

                
    catch (Exception ex)
                
    {
                    HttpContext.Current.Trace.Warn(
    "Error""EndRequest: " + ex.Message, ex);
                }

                
                
    base.Dispose();
            }

        }

    }

    继承自PageBase.cs的页面就都支持 AR 的 Lazy Load

    我用的 asp.net2.0 为什么官方的方案会不行,有知道的人请赐教。

  • 相关阅读:
    React
    移动端
    Flask 框架小记
    PyTorch 学习
    CNN 小结
    Django 环境下常用的模型设计
    Linux用户和用户组
    Linux下查看进程的命令输出的内容解释
    linux下配置tomcat开机自启动
    商业智能概述
  • 原文地址:https://www.cnblogs.com/shiningrise/p/887414.html
Copyright © 2011-2022 走看看