ISession не строго соответствует транзакции базы данных в nHibernate, однако в нее встроена неявная транзакция, вы можете увидеть больше здесь: NHProf о неявных транзакциях .
В Entity Framework транзакция запускается неявно, когда вы вызываете SaveChanges, вы можете узнать больше об этом в этой статье на msdn
Чтобы иметь явную транзакцию в Entity Framework, вы используете TransactionScope или BeginTransaction для EntityConnection.
Самый простой способ - использовать TransactionScope следующим образом:
using (TransactionScope tran = new TransactionScope()){
context.SaveChanges();
//Do more work with this or another context
context.SaveChanges();
tran.Complete();
//Or alternatively don't call Complete and because of the using block Dispose on tran will be
//called causing an Rollback
}