一个有用的NHibernate工具类NHibernateUtil(第一版)

18 篇文章 0 订阅

最近测试NHibernate的时候,模拟HibernateUtil做了一个工具类NHibernateUtil.感觉挺不错的,所以拿出来与大家分享.请各位同道指正.

using System;

namespace Com.W3oa.Hibernate
{
 /// <summary>
 /// Summary description for SessionFactory.
 /// </summary>
 public class NHibernateUtil
 {
  [ThreadStatic]
  private static NHibernate.ISession threadLocal;
  private static NHibernate.ISessionFactory sessionFactory = null;

  /// <summary>
  /// 构造函数
  /// </summary>
  static NHibernateUtil()
  {
   if (sessionFactory == null )
   {
    NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
    cfg.AddAssembly( System.Reflection.Assembly.GetExecutingAssembly());
    sessionFactory = cfg.BuildSessionFactory();
   }
  }
  private NHibernateUtil(){}
  /// <summary>
  /// 获取HibernateSession
  /// </summary>
  public static NHibernate.ISession Session
  {
   get
   {
    NHibernate.ISession session = (NHibernate.ISession)threadLocal;
   
    if(session == null||!session.IsOpen)
    {
     session = sessionFactory.OpenSession();
     threadLocal = session;
    }

    return session;
   }
  }
  /// <summary>
  /// 关闭HibernateSession
  /// </summary>
  public static void CloseSession()
  {
   NHibernate.ISession session = threadLocal;
   threadLocal = null;
   if (session != null)
   {
    session.Close();
   }
  }
 }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值