/// <summary> /// ConcurrentCollections with EntitFramework /// </summary> public void Run6() { LinqDemoEntities db = new LinqDemoEntities(); var products = GetProducts(); ConcurrentBag <Order> cb = new ConcurrentBag <Order>(); Console.WriteLine("來源資料筆數:{0}", products.Count()); Console.WriteLine("執行前結果資料筆數:{0}", db.Order.Count()); Parallel.ForEach(products, x => { int id = x.Id; string name = x.Name; int stock = 100 + x.Id; var order = new Order() { Id = id, OrderName = name }; cb.Add(order); }); db.Order.AddRange(cb); db.SaveChanges(); Console.WriteLine("執行後結果資料筆數:{0}", db.Order.Count()); }
/// <summary> /// List with EntitFramework /// </summary> public void Run5() { LinqDemoEntities db = new LinqDemoEntities(); var products = GetProducts(); Console.WriteLine("來源資料筆數:{0}", products.Count()); Console.WriteLine("執行前結果資料筆數:{0}", db.Order.Count()); var watch = new Stopwatch(); watch.Start(); Parallel.ForEach(products, x => { int id = x.Id; string name = x.Name; int stock = 100 + x.Id; var order = new Order() { Id = id, OrderName = name }; db.Order.Add(order); }); watch.Stop(); Console.WriteLine("Consume Time: {0} ms", watch.ElapsedMilliseconds); db.SaveChanges(); Console.WriteLine("執行後結果資料筆數:{0}", db.Order.Count()); }