Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.NHibernate/NHibernateSessionPerActionAttribute.cs @ 80:c2d98fd6593f
Track como objeto identificable y con referencia al evento correspondiente.
Puede que con estos cambios sea necesario borrar las tablas en la db y dejar
que se vuelvan a generar, ya sea en los test o en la aplicación web
author | nelopauselli |
---|---|
date | Tue, 24 May 2011 18:25:57 -0300 |
parents | c8099df941bd |
children |
line wrap: on
line source
using System.Web.Mvc; using NHibernate; using NHibernate.Context; namespace Agendas.NHibernate { public class NHibernateSessionPerActionAttribute : ActionFilterAttribute { private readonly ISessionFactory _sessionFactory; public NHibernateSessionPerActionAttribute(ISessionFactory sessionFactory) { _sessionFactory = sessionFactory; } public override void OnActionExecuting(ActionExecutingContext filterContext) { var session = _sessionFactory.OpenSession(); CurrentSessionContext.Bind(session); base.OnActionExecuting(filterContext); } public override void OnResultExecuted(ResultExecutedContext filterContext) { base.OnResultExecuted(filterContext); var session = _sessionFactory.GetCurrentSession(); session.Flush(); session.Close(); } } }