用于Sybase的NHibernate批处理

时间:2014-04-08 09:34:25

标签: nhibernate

在nhibernate配置中设置ado.batch_size属性时,将忽略它。 如果我调试会话,它将批量大小显示为1,即使我将其设置为25。

NHibernate 3.3.3是否支持Sybase Anywhere的批处理?

1 个答案:

答案 0 :(得分:1)

仅SQL Server客户端和Oracle客户端不支持批处理。 Sybase驱动程序使用NonBatchingBatcher,这意味着不进行批处理。

使用批处理的扩展驱动程序
我已经为NHibernate创建了一个Batcher http://pastebin.com/gbPs6w4a

示例配置
关键是db.Driver

Configuration.DataBaseIntegration(
            db =>
            {
                db.ConnectionString = "Some Connection String"
                db.KeywordsAutoImport = Hbm2DDLKeyWords.None;
                db.Driver<SybaseSQLAnywhereDotNet4WithBatcherDriver>();
                db.Dialect<SybaseSQLAnywhere12Dialect>();
                db.BatchSize = 25;
                db.LogSqlInConsole = showSqlInConsoleWindow;
                db.LogFormattedSql = showSqlInConsoleWindow;
            });