在CastleProject ActiveRecord中批量保存

时间:2010-03-19 09:29:08

标签: castle-activerecord

我需要在数据库中保存数千条记录。我正在使用CastleProject ActiveRecord。存储该对象数量的循环工作时间过长。

是否可以使用ActiveRecord批量运行保存?什么是提高性能的推荐方法?

3 个答案:

答案 0 :(得分:1)

我似乎找到了解决方案。主要有两个步骤:

  1. 向配置文件添加批处理:< add key =“hibernate.batch_size”value =“100”/>
  2. 使用TransactionScope保存对象:

  3. using (TransactionScope scope = new TransactionScope())
    {
      for (int i = 0; i < 100; i++)
      {
        Contact contact = new Contact();
        contact.Save();
      }
    }
    

答案 1 :(得分:0)

ActiveRecord(和大多数ORM)不适合批处理操作。随着ORM中的所有变更跟踪进行,它可能会让您失望。

为了获得最佳性能,我会选择直接ADO.NET或某种SQL批量导入。

答案 2 :(得分:0)