using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EF批量插入 { class Program { static void Main(string[] args) { TestEntities test = new TestEntities(); DateTime time1 = DateTime.Now; for (int i = 0; i < 10000; i++) { User user = new User(); user.Name = "测试" + i.ToString(); test.User.Add(user); test.SaveChanges(); } DateTime time2 = DateTime.Now; TimeSpan ts = new TimeSpan(time1.Ticks); TimeSpan ts2 = new TimeSpan(time2.Ticks); Console.WriteLine("不批量插入:"+( ts2-ts)); //引入Z.EntityFramework.Extensions 批量插入 DateTime time3 = DateTime.Now; List<User> list = new List<User>(); for (int i = 0; i < 10000; i++) { User user = new User(); user.Name = "测试" + i.ToString(); list.Add(user); } test.BulkInsert(list); test.SaveChanges(); DateTime time4 = DateTime.Now; TimeSpan ts3 = new TimeSpan(time3.Ticks); TimeSpan ts4 = new TimeSpan(time4.Ticks); Console.WriteLine("批量插入"+(ts4 - ts3)); Console.ReadKey(); } } }
最终结果: 单个插入用时90秒。 批量插入不到3秒