C# 从控制器获取Nhibernate会话(每个请求的会话)ASP.Net MVC
我看过很多关于如何在Asp.NETMVC中通过使用ActionFilter或DI包将会话注入控制器来设置每个请求的会话的文章。我想知道的是,仅仅制作一个扩展方法(如:C# 从控制器获取Nhibernate会话(每个请求的会话)ASP.Net MVC,c#,asp.net-mvc,nhibernate,C#,Asp.net Mvc,Nhibernate,我看过很多关于如何在Asp.NETMVC中通过使用ActionFilter或DI包将会话注入控制器来设置每个请求的会话的文章。我想知道的是,仅仅制作一个扩展方法(如: public static ISession GetNHibernateSession(this Controller controller) { return SessionFactory.OpenSession(); } 以便在需要时可以实例化会话,如: public ActionResult DoSomethin
public static ISession GetNHibernateSession(this Controller controller)
{
return SessionFactory.OpenSession();
}
以便在需要时可以实例化会话,如:
public ActionResult DoSomething()
{
using( var session = this.GetNHibernateSession())
{
// Do something with the session
}
}
这可能是一个好主意/坏主意的原因将受到高度赞赏好:
- 很简单
- 它只是工作
- 您正在执行会话管理,即使它只是一个三行代码
- 对于扩展方法,您不能替换测试的行为
- 很简单
- 它只是工作
- 您正在执行会话管理,即使它只是一个三行代码
- 对于扩展方法,您不能替换测试的行为