3
我將adonet.batch_size設置爲10,但是當我在對象圖上進行保存時,它將在單獨的數據庫調用中保存對象及其所有子對象。NHibernate adonet.batch_size不工作
我能夠使用NHProf工具看到這個。
-- statement #1
INSERT INTO Preferences
-- statement #2
INSERT INTO PreferencesToWidgets
-- statement #3
INSERT INTO PreferencesToWidgets
-- statement #4
INSERT INTO PreferencesToWidgets
-- statement #5
INSERT INTO PreferencesToWidgets
-- statement #6
INSERT INTO PreferencesToWidgets
-- statement #7
INSERT INTO PreferencesToWidgets
-- statement #8
INSERT INTO PreferencesToWidgets
-- statement #9
INSERT INTO PreferencesToWidgets
-- statement #10
INSERT INTO PreferencesToWidgets
-- statement #11
INSERT INTO PreferencesToWidgets
-- statement #12
INSERT INTO Users
用戶是一個一對多的首選項
偏好是多到一個PreferencesToWidgets
基本上,我有我添加了一個偏好的用戶,而偏愛有一堆的優先部件添加到它。
我然後調用session.SaveOrUpdate(用戶),並且所有的對象插入在分開的呼叫,即使批量大小設置爲10
我做經由FluentNHibernate配置。
Fluently.Configure() .Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2005.ConnectionString(c => c.FromConnectionStringWithKey(connectionStringKey)) .ProxyFactoryFactory("NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu")) .Mappings(m => m.FluentMappings.AddFromAssembly(typeof(SessionFactoryFactory).Assembly)) .ExposeConfiguration(cfg => cfg.SetProperty("generate_statistics", "true")) .ExposeConfiguration(cfg => cfg.SetProperty("adonet.batch_size", "10")) .BuildSessionFactory();
嗯我沒有得到.ExposeConfiguration的選項... – Perhentian 2009-10-20 12:09:14
ExposeConfiguration允許您更改原始NHibernate的配置對於任何不通過FluentNHibernate暴露。 – 2009-10-21 13:31:08