冰河の泥鱼的专栏

非学无以成才,非志无以成学.

原创 一个有用的NHibernate工具类NHibernateUtil(第一版)收藏

新一篇: 一个有用的NHibernate工具类NHibernateUtil (其它版本) | 旧一篇: 在C#中应用哈希表(Hashtable)[网淘]

最近测试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();
   }
  }
 }


发表于 @ 2007年01月09日 11:37:00|评论(loading...)|编辑

新一篇: 一个有用的NHibernate工具类NHibernateUtil (其它版本) | 旧一篇: 在C#中应用哈希表(Hashtable)[网淘]

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 冰河の泥鱼