为什么是NHibernate';s adonet.batch_大小设置被忽略-session.SetBachSize()引发异常?

为什么是NHibernate';s adonet.batch_大小设置被忽略-session.SetBachSize()引发异常?,nhibernate,exception,batch-file,bulk,Nhibernate,Exception,Batch File,Bulk,我正在使用NHibernate,并从本地SQLExpress数据库切换到Oracle11g 我的代码开始抱怨。会话对象方法SetBatchSize()引发System.NotSupported异常: 没有为会话工厂定义批大小,批处理已禁用。设置adonet.batch_size=1以启用批处理 它在SQLExpress数据库上工作。好的,我加了这个 <property name="adonet.batch_size">1</property> 1 但是它仍然抛出相同的

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

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

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

它在SQLExpress数据库上工作。好的,我加了这个

<property name="adonet.batch_size">1</property>
1
但是它仍然抛出相同的异常。会话批处理程序属性设置为

值:{NHibernate.AdoNet.NonBatchingBatcher}

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


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

NHibernate只有一些RDBMs的批处理程序。如果没有为相关数据库找到一个,则默认为nonbatchingbatcher,它根本无法批处理。您可以实现自己的
IBatcher

,这样oracle xe就没有批处理程序,我应该尝试/捕获SetBatchSize()调用。您不能只指定一个全局批处理大小,还是真的需要用SetBatchSize()覆盖它?我已经这样做了,现在我知道我应该一直尝试/捕获SetBatchSize()如果我还想用的话