我正在使用 NHibernate,并从本地 SQLExpress 数据库切换到 Oracle11g。
我的代码开始提示。 session 对象方法 SetBatchSize() 抛出 System.NotSupported 异常:
block 引用>No batch size was defined for the session factory, batching is disabled. Set adonet.batch_size = 1 to enable batching.
它适用于 SQLExpress 数据库。好的,所以我添加了这个
<property name="adonet.batch_size">1</property>
到配置,但它仍然抛出相同的异常。 session Batcher 属性设置为此
block 引用>Value: {NHibernate.AdoNet.NonBatchingBatcher}
Type: NHibernate.Engine.IBatcher {NHibernate.AdoNet.NonBatchingBatcher}
如果我尝试在事务内或事务外设置批量大小,则没有任何区别。
最佳答案
NHibernate 仅针对某些 RDBM 提供批处理程序。如果它没有找到有问题的数据库,它默认为nonbatchingbatcher,它根本无法批处理。您可以实现自己的IBatcher
。
关于nhibernate - 为什么 NHibernate 的 adonet.batch_size 设置被忽略 - session.SetBachSize() 抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11118923/