2

我正在使用 NHibernate 并从我的本地 SQLExpress 数据库切换到 Oracle11g。

我的代码开始抱怨。会话对象方法 SetBatchSize() 引发 System.NotSupported 异常:

没有为会话工厂定义批处理大小,禁用批处理。设置 adonet.batch_size = 1 以启用批处理。

它适用于 SQLExpress 数据库。好的,所以我添加了这个

<property name="adonet.batch_size">1</property>

到配置,但它仍然抛出相同的异常。会话 Batcher 属性设置为此

值:{NHibernate.AdoNet.NonBatchingBatcher}

类型:NHibernate.Engine.IBatcher {NHibernate.AdoNet.NonBatchingBatcher}

如果我尝试在事务内部或外部设置批量大小,这没有任何区别。

4

1 回答 1

2

NHibernate 只有一些 RDBM 的批处理器。如果它没有为有问题的数据库找到一个,它默认为 nonbatchingbatcher,它根本无法批处理。你可以实现你自己的IBatcher.

于 2012-06-21T05:39:48.707 回答