В общем случае ORM не предназначены для работы в стиле ETL, например, для загрузки записей 1м.Модные вещи, которые они делают, такие как отслеживание изменений, там довольно утеряны и в большинстве своем не нужны.ADO.NET - ваш друг здесь.
Но это, вероятно, поможет, если вы используете одну сессию и одну транзакцию для более чем одной записи:
using (ISession session = NHibernateHelper.OpenSession())
using (ITransaction tranx = session.BeginTransaction())
{
foreach (var rec in MyRecords)
{
session.Save(movimientoPendiente);
}
tranx.Commit();
}
Это по крайней мере означает, что вымы не создаем довольно дорогой сеанс и не сжигаем довольно дорогую транзакцию каждый раз, когда вы отправляете запись.