私は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
ExposeConfigurationあなたはFluentNHibernateを介して公開されていないものについての生のNHibernateの設定を変更することができます。 –