Estoy almacenando algunos datos usando NHibernate, y tengo que insertar gran cantidad de datos como parte de esta acción, es decir, en la misma transacción. El código se ve así:Uso de la transacción NHibernate en SqlBulkCopy
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();
}
Sé que podría usar TransactionScope o hacerlo de otra manera. Pero insisto en este patrón. Vamos a pretender que, por el bien del acceso a bases de datos independientes (si extraigo e inyecto una operación de inserción masiva arbitraria). ¿Hay alguna manera de obtener la instancia SqlTransaction
de NHibernate.ITransaction
?
Gracias
¿La respuesta a continuación le soluciona su pregunta? – Meligy