gpt4 book ai didi

c# - Fluent nHibernate - 无法设置批量大小

转载 作者:行者123 更新时间:2023-11-30 14:28:42 25 4
gpt4 key购买 nike

我尝试在我的 SessionFactory 中启用 Bach Size:

Fluently.Configure()
.Database(MySQLConfiguration.Standard.AdoNetBatchSize(1)
.ConnectionString("xxx"))
.Mappings(m => m.FluentMappings.AddFromAssembly(...))
.ExposeConfiguration(c => c.SetProperty("adonet.batch_size", "1"))
.BuildSessionFactory();

但是当我想设置批量大小的值时:

Session = _sessionFactory.OpenSession();

Session.SetBatchSize(25);
Session.FlushMode = FlushMode.Commit;

我仍然得到那个错误:

No batch size was defined for the session factory, batching is disabled. Set adonet.batch_size = 1 to enable batching.

最佳答案

你应该使用

MySqlClientBatchingBatcherFactory

因此,类似于

    Fluently.Configure()
.Database(MySQLConfiguration.Standard
.ConnectionString("xxx"))
.Mappings(m => m.FluentMappings.AddFromAssembly(...))
.ExposeConfiguration(c => c.DataBaseIntegration(prop =>
{
prop.BatchSize = 50;
prop.Batcher<MySqlClientBatchingBatcherFactory>();

}))
.BuildSessionFactory();

应该可以。

请查看这些答案:Fluent NHibernate MySQL batchingMySQL NHibernate Batcher如果您在批处理方面遇到更多问题;他们展示了其他实现方法。

考虑到 £4.0 之前的 NHibernate?与 MySQL 结合时不支持( native )批处理,需要外部包(由于某些 mysql 依赖性)。但是,在此版本之后,批处理程序已包含在主干中,因此这些答案仍然有效。

如果您使用 NHibernate 4+,应该不会出现任何问题。

关于c# - Fluent nHibernate - 无法设置批量大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28721221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com