C# Класс Editor.Utils.NHibernateSessionManager

Handles creation and management of sessions and transactions. It is a singleton because building the initial session factory is very expensive. Inspiration for this class came from Chapter 8 of Hibernate in Action by Bauer and King. Although it is a sealed singleton you can use TypeMock (http://www.typemock.com) for more flexible testing.
Показать файл Открыть проект

Private Properties

Свойство Тип Описание
GetSessionFactoryFor ISessionFactory
GetSessionFrom ISession
IsInWebContext bool
NHibernateSessionManager System

Открытые методы

Метод Описание
BeginTransactionOn ( string sessionFactoryConfigPath ) : ITransaction
CloseSessionOn ( string sessionFactoryConfigPath ) : void

Flushes anything left in the session and closes the connection.

CommitTransactionOn ( string sessionFactoryConfigPath ) : void
GetSessionFrom ( string sessionFactoryConfigPath ) : ISession
HasOpenTransactionOn ( string sessionFactoryConfigPath ) : bool
RegisterInterceptorOn ( string sessionFactoryConfigPath, IInterceptor interceptor ) : void

Allows you to register an interceptor on a new session. This may not be called if there is already an open session attached to the HttpContext. If you have an interceptor to be used, modify the HttpModule to call this before calling BeginTransaction().

RollbackTransactionOn ( string sessionFactoryConfigPath ) : void

Приватные методы

Метод Описание
GetSessionFactoryFor ( string sessionFactoryConfigPath ) : ISessionFactory

This method attempts to find a session factory stored in sessionFactories via its name; if it can't be found it creates a new one and adds it the hashtable.

GetSessionFrom ( string sessionFactoryConfigPath, IInterceptor interceptor ) : ISession

Gets a session with or without an interceptor. This method is not called directly; instead, it gets invoked from other public methods.

IsInWebContext ( ) : bool
NHibernateSessionManager ( ) : System

Private constructor to enforce singleton

Описание методов

BeginTransactionOn() публичный Метод

public BeginTransactionOn ( string sessionFactoryConfigPath ) : ITransaction
sessionFactoryConfigPath string
Результат ITransaction

CloseSessionOn() публичный Метод

Flushes anything left in the session and closes the connection.
public CloseSessionOn ( string sessionFactoryConfigPath ) : void
sessionFactoryConfigPath string
Результат void

CommitTransactionOn() публичный Метод

public CommitTransactionOn ( string sessionFactoryConfigPath ) : void
sessionFactoryConfigPath string
Результат void

GetSessionFrom() публичный Метод

public GetSessionFrom ( string sessionFactoryConfigPath ) : ISession
sessionFactoryConfigPath string
Результат ISession

HasOpenTransactionOn() публичный Метод

public HasOpenTransactionOn ( string sessionFactoryConfigPath ) : bool
sessionFactoryConfigPath string
Результат bool

RegisterInterceptorOn() публичный Метод

Allows you to register an interceptor on a new session. This may not be called if there is already an open session attached to the HttpContext. If you have an interceptor to be used, modify the HttpModule to call this before calling BeginTransaction().
public RegisterInterceptorOn ( string sessionFactoryConfigPath, IInterceptor interceptor ) : void
sessionFactoryConfigPath string
interceptor IInterceptor
Результат void

RollbackTransactionOn() публичный Метод

public RollbackTransactionOn ( string sessionFactoryConfigPath ) : void
sessionFactoryConfigPath string
Результат void