代码是这样的
[NHibernateSession]
public ActionResult SaveNewOrder(Order order)
{
......
return RedirectToAction("Index");
}[AttributeUsageAttribute(AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
public class NHibernateSessionAttribute : FilterAttribute, IActionFilter
{
public NHibernateSessionAttribute() : base()
{
} public void OnActionExecuting(ActionExecutingContext filterContext)
{
var session = SessionProvider.GetNewSession();
CurrentSessionContext.Bind(session);
} public void OnActionExecuted(ActionExecutedContext filterContext)
{
CurrentSessionContext.Unbind(SessionProvider.GetSessionFactory()).Close();
}
}
对于每个Action方法在执行前,都会获取一个新的session帮到这个线程中,执行完后解除这个session,这样做的好处是什么?
[NHibernateSession]
public ActionResult SaveNewOrder(Order order)
{
......
return RedirectToAction("Index");
}[AttributeUsageAttribute(AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
public class NHibernateSessionAttribute : FilterAttribute, IActionFilter
{
public NHibernateSessionAttribute() : base()
{
} public void OnActionExecuting(ActionExecutingContext filterContext)
{
var session = SessionProvider.GetNewSession();
CurrentSessionContext.Bind(session);
} public void OnActionExecuted(ActionExecutedContext filterContext)
{
CurrentSessionContext.Unbind(SessionProvider.GetSessionFactory()).Close();
}
}
对于每个Action方法在执行前,都会获取一个新的session帮到这个线程中,执行完后解除这个session,这样做的好处是什么?
NHiberante里边的session是线程不安全的。在与ASP.NET MVC结合使用的使用,怎么来使用Session?
NHiberante里边的session是线程不安全的。在与ASP.NET MVC结合使用的使用,怎么来使用Session?
mvc里也单线程使用不就好了
NHiberante里边的session是线程不安全的。在与ASP.NET MVC结合使用的使用,怎么来使用Session?
mvc里也单线程使用不就好了我看这代码的意思,是每一个request进来的时候,都会给这个request绑定一个新的session. 然后request到页面端的时候就释放,你觉得呢?