我可以为ASP.NET应用程序在Autofac中连接NHibernate ISession的代码如下:
我有以下代码来在Autofac中连接NHibernate ISession:
builder.RegisterAdapter<ISessionFactory, ISession>(factory => factory.OpenSession())
.InstancePerHttpRequest()
.OnActivated(activatedArgs =>
{
var session = activatedArgs.Instance;
session.BeginTransaction();
})
.OnRelease(session =>
{
if (session.Transaction != null && session.Transaction.IsActive)
{
try
{
session.Transaction.Commit();
}
catch(Exception e)
{
session.Transaction.Rollback();
throw;
}
}
});
即使在提交时发生异常,会话是否会被正确处理?这是否是ISession与autofac的正确使用方式?