zoukankan      html  css  js  c++  java
  • NHibernate Contrib Best Practice

    NHibernate Contrib Best Practice

    介绍

    NHibernate Contrib(Burrow)是一个轻量级的开发中间件,底层使用Nhibernate 2.0GA(Nhibernate 2.0的.hbm.xml和1.2是兼容的) ORM技术框架实现。Burrow提供了智能化的状态,会话,使管理,事务让你更方便的使用Nhibernate进行.net应用程序的开发。

    Burrow功能

    1. Burrow Conversation:可以很轻松的开发业务流程
    2. GenericDAO:尽可能少接触ISession(会话和事务)
    3. Stateful field attributes:它有助于UserControls记住实体或网页状态,而不会造成懒惰负载例外
    4. Multiple databases support: 支持多个数据库变得更容易,你不需要SessionFactoryPath ,您只需提供一个实体型Burrow,Burrow将帮你找到合适的ISession。如果您使用的是GenericDAO ,多种数据库的支持是非常透明的-您的代码不需要知道有多个数据库

    Burrow GetStarted

    创建一个Burrow asp.net项目

    添加web.config配置信息,读取配置和assembly

    <configSections>

    <section name="NHibernate.Burrow" type="NHibernate.Burrow.Configuration.NHibernateBurrowCfgSection" />

    </configSections>

    <NHibernate.Burrow >

    <persistantUnits>

    <add name="PersistenceUnit1" nh-config-file="hibernate.cfg.xml" />

    </persistantUnits>

    </NHibernate.Burrow>

     

     

    添加HttpModule Setting 用于管理会话和事务

    <httpModules>

    <add name="NHibernate.Burrow.WebUtil.HttpModule"

    type="NHibernate.Burrow.WebUtil.WebUtilHTTPModule,NHibernate.Burrow.WebUtil"/>

    </httpModules>

     

    维护hibernate.cfg.xml 实体数据库位置和实体类的程序集如果需要同时连接多个数据库之需要添加多个配置文件

     

    <configSections>

    <section name="NHibernate.Burrow" type="NHibernate.Burrow.Configuration.NHibernateBurrowCfgSection" />

    </configSections>

    <NHibernate.Burrow >

    <persistantUnits>

    <add name="PersistenceUnitDB1" nh-config-file="db1hibernate.cfg.xml" />

    <add name="PersistenceUnitDB2" nh-config-file="db2hibernate.cfg.xml" />

    </persistantUnits>

    </NHibernate.Burrow>

     

    使用ISession,如果你使用Burrow.AppBlock.GenericDAO 那么就不必关心会话和事务的控制

    ISession sess = new BurrowFramework().GetSession(); //Gets the Burrow Managed NHibernate Session

     

    如果不是一个asp.net运行环境,那么你需要调用BurrowFramework.InitWorkSpace to initialize

     

    //call this at the beginning (only when not in ASP.NET)

    new BurrowFramework.InitWorkSpace();//

       

    //call this at the end (only when not in ASP.NET)

    new BurrowFramework.CloseWorkSpace();

     

    DEMO 

  • 相关阅读:
    高级软件工程第八次作业LLS战队团队作业五
    Alpha阶段个人总结
    高级软件工程第七次作业:LLS战队Alpha敏捷冲刺7
    高级软件工程第七次作业:LLS战队Alpha敏捷冲刺6
    数独游戏界面功能
    数独棋盘
    调研《构建之法》指导下的全国高校的历届软工实践作品、全国互联网+竞赛、物联网竞赛、华为杯研究生作品赛、全国大学生服务外包赛等各类全国性大学生信息化相关的竞赛平台的历届作品
    高级软件工程课程的实践项目的自我目标
    Beta冲刺汇总博客
    团队作业9——第二次项目冲刺2(Beta阶段)
  • 原文地址:https://www.cnblogs.com/neozhu/p/1397106.html
Copyright © 2011-2022 走看看