首页 新闻 搜索 专区 学院

Nhibernate在oracle批量插入失败,求解?

0
悬赏园豆:20 [待解决问题]

<property name="adonet.batch_size">100</property>

 

加了这句,发现在oracle不起作用。一样的代码,如果在sql08下运行能生效。

 

using (var session = SessionFactory.NHSessionFactory.OpenStatelessSession())
            {
                using (var tx = session.BeginTransaction())
                {
                    try
                    {
                        foreach (var entity in entities)
                        {
                            session.Insert(entity);
                        }
                        tx.Commit();
                    }
                    catch (Exception ex)
                    {

                    }
                }
            }

 

oracle运行后如下图:

 

SQL08执行后如下图:

 

明显看出oracle不支持批量插入那样。再深看了NH源代码发现oracle批量导入,有一个类,NHibernate.AdoNet.OracleDataClientBatchingBatcherFactory

 

打算引入该类:

<property name="adonet.factory_class">NHibernate.AdoNet.OracleDataClientBatchingBatcherFactory,NHibernate</property>

但插入时看到有批量导入的样子了,但事务提交tx.commit或session.flush().报了一个对象无法实例化的错误,然后把这个session通道关闭了。又再尝试引用NH源码入项目调试,但没有发现效果。

问题补充:

一天了,居然没有人有回复。难道这问题没有解决方案?

顺德人的主页 顺德人 | 初学一级 | 园豆:33
提问于:2013-03-24 22:23
< >
分享
所有回答(1)
0

173844862 .net交流群,欢迎你的加入

辛巴 | 园豆:622 (小虾三级) | 2013-03-26 08:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册