all! I am learning NHibernate now and I would like to know is it possible to save multiple objects to database in one operation.
For example, consider this test code
private static void SaveTestBillNamesInSession(ISession session, params string[] names)
{
var bills = from name in names
select new Bill
{
Name = name,
DateRegistered = DateTime.Now,
};
foreach (var bill in bills)
session.SaveOrUpdate(bill);
}
This loop here generates many INSERT statements which may be sub-optimal in SQL Server 2008 which allows to include multiple data rows in one INSERT statement.
Is it possible to rewrite this code to make use of this functionality – insert all the data in one operation?
Update
OK, now it’s really started to send everything in a single batch. Many thanks to all!
There’s something close to what you want.
If you set the
adonet.batch_sizeconfiguration property to anything other than 0 (the default), NHibernate will send that many statements at once to SQL Server.