講解NHibernate Session
本文向大家介紹NHibernate Session,可能好多人還不了解NHibernate Session,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
NHibernate 是一個(gè)基于.Net 的針對(duì)關(guān)系型數(shù)據(jù)庫(kù)的對(duì)象持久化類(lèi)庫(kù)。Nhibernate 來(lái)源于非常優(yōu)秀的基于Java的Hibernate 關(guān)系型持久化工具。
NHibernate Session是線(xiàn)程不安全的,而且每次數(shù)據(jù)庫(kù)操作 請(qǐng)求創(chuàng)建Session時(shí)對(duì)性能有些影響。在Windows應(yīng)用中可以通過(guò) [ThreadStatic]特性很簡(jiǎn)單的就可以實(shí)現(xiàn)線(xiàn)程安全,而在Web中可以通過(guò)將Session與用于請(qǐng)求HttpContext綁定實(shí)現(xiàn)線(xiàn)程安全,并且用戶(hù)當(dāng)前請(qǐng)求時(shí)只有一個(gè)NHibernate Session。代碼如下:
- ISessionManage.cs
- using System;
- using NHibernate;
- namespace Commercial.Jwsoft.Framework.Persistence.SessionManage
- {
- /// <summary>
- /// 功能:主要用于封裝第三方類(lèi)庫(kù)操作數(shù)據(jù)庫(kù)的Session類(lèi),現(xiàn)主要用于封裝NHibernate中的Session
- /// </summary>
- public interface ISessionManage
- {
- /// <summary>
- /// 獲取Session的一個(gè)實(shí)例
- /// </summary>
- /// <returns>返回實(shí)現(xiàn)NHibernate.ISession接口的類(lèi)</returns>
- ISession Get();
- /// <summary>
- /// 設(shè)置Session的一個(gè)實(shí)例
- /// </summary>
- /// <param name="session">實(shí)現(xiàn)NHibernate.ISession接口的類(lèi)</param>
- void Set(ISession session);
- }
- }
【編輯推薦】