Я храню некоторые данные с помощью NHibernate, и мне нужно вставить огромный объем данных в качестве части этого действия - то есть в ту же транзакцию. Код выглядит следующим образом:
using (ISession session = NHibernateHelper.OpenSession())
using (ITransaction transaction = session.BeginTransaction())
{
session.SaveOrUpdate(something);
// ...
SqlBulkCopy bulkCopy = new SqlBulkCopy(
(SqlConnection)session.Connection,
SqlBulkCopyOptions.CheckConstraints | SqlBulkCopyOptions.FireTriggers,
???transaction???
);
//...
transaction.Commit();
}
Я знаю, что могу использовать TransactionScope или делать это иначе. Но я настаиваю на этом. Предположим, что ради независимого доступа к БД (если я извлекаю и вставляю произвольную операцию объемной вставки).
Есть ли способ получить экземпляр SqlTransaction
из NHibernate.ITransaction
?
Спасибо