使用
之间有什么区别using (var scope = new TransactionScope(TransactionScopeOption.Required))
{
using (ISession session = NHibernateHelper.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Delete(entity);
transaction.Commit();
}
}
scope.Complete();
}
并简单地使用?
using (ISession session = NHibernateHelper.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Delete(entity);
transaction.Commit();
}
}
有什么优点和不利之处以及什么时候适合使用?
答案 0 :(得分:0)
由于您同时使用 TransactonScope 和 NHibernate事务,因此您有某种重复的逻辑。如果要使用简单的SQL事务操作,则应使用 NHibernate事务。
TransactionScope class旨在用于任何一般事务方案。例如,它在EntityFramework中使用。使用NHibernate时你不需要它,但是当你需要implement custom transaction mechanism时它非常有用。