Пример 1, следующая вставка приводит к 2 пакетам независимо от вашей конфигурации:
INSERT INTO <b>entitytable1</b> (someInt) VALUES (1)
INSERT INTO <b>entitytable2</b> (someInt) VALUES (3)
-- Notice tables are <b>different</b>
-- Results in <b>2</b> round trips to the db
-- C# code that can generate such statements:
session.Save(typeof(entitytable<b>1</b>), new entitytable<b>1</b>{someInt = 1})
session.Save(typeof(entitytable<b>2</b>), new entitytable<b>2</b>{someInt = 3})
transction.Commit();
Однако, в примере 2 ниже, вставки приводят к 1 партии:
INSERT INTO <b>entitytable1</b> (someInt) VALUES (1)
INSERT INTO <b>entitytable1</b> (someInt) VALUES (3)
-- Notice tables are the <b>same</b>
-- Results in <b>1</b> round trip to the db
-- C# code that can generate such statements:
session.Save(typeof(entitytable<b>1</b>), new entitytable<b>1</b>{someInt = 1})
session.Save(typeof(entitytable<b>1</b>), new entitytable<b>1</b>{someInt = 3})
transction.Commit();
Можно ли заставить пример 1 работать как 2, то есть отправлять разные вставки, объединенные в БД (например, 1 туда-обратно)?
Определение пакетирования для немногих: для отправки нескольких выписок / вставок, сгруппированных вместе, до Ado_Batch_size, в базу данных за один прием.
Показанный выше sql генерируется Nhibernate, конечно! Это то, что вы увидите на NHProfiler.
Версия: Nhibernate 3.2