天天看點

DataRabbit 輕量的資料通路架構(15)-- IOrmAccesser的BatchInsert批量插入!

        /// <summary>

        /// BatchInsert 批量插入一組記錄。忽略所有Blob字段。

        /// </summary>       

        void BatchInsert(IList<EntityType> entityList);

    當我們需要一次性向同一Table中插入大量(如千條以上)的記錄時,使用BatchInsert方法可以顯著的提供性能。

   在前文的例子中,我們是這樣插入1000條記錄的:

         for (int i = 2000; i < 3000; i++)

         {

              accesser.Insert(new LinqTest.MyOrm.Customer(i, "Peng", 434100));

         }

   使用BatchInsert方法,我們可以這樣做:

          IList<LinqTest.MyOrm.Customer> cusList = new List<LinqTest.MyOrm.Customer>();

          for (int i = 2000; i < 3000; i++)

          {

              cusList.Add(new LinqTest.MyOrm.Customer(i, "Peng", 434100));

          }

          accesser.BatchInsert(cusList);

   下面是測試的性能結果比較:

   性能提升了24倍之多,這個結果還是非常不錯的,是以大批量插入Entity時,推薦使用BatchInsert方法。

   注意,BatchInsert方法在批量插入資料時将忽略所有的Blob字段。