Sybase 的 NHibernate 批处理

Posted

技术标签:

【中文标题】Sybase 的 NHibernate 批处理【英文标题】:NHibernate Batching for Sybase 【发布时间】:2014-04-08 09:34:24 【问题描述】:

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

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

【问题讨论】:

【参考方案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;
            );

【讨论】:

以上是关于Sybase 的 NHibernate 批处理的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate代码监视

NHibernate 2.1.2 - 如何禁用反射优化器

在使用 NHibernate 进行持久性的项目中测试数据模型

无法加载代理工厂工厂异常

NHibernate + Fluent NHibernate 异常

Nhibernate 如何处理插入、更新、删除