private static void AddRecords() { Console.WriteLine(nameof(AddRecords)); try { using (var context = new MenusContext()) { var soupCard = new MenuCard(); Menu[] soups = { new Menu { Text = "Consommé Célestine (with shredded pancake)", Price = 4.8m, MenuCard = soupCard }, new Menu { Text = "Baked Potato Soup", Price = 4.8m, MenuCard = soupCard }, new Menu { Text = "Cheddar Broccoli Soup", Price = 4.8m, MenuCard = soupCard }, }; soupCard.Title = "Soups"; //soups会插入到Menus表 soupCard.Menus.AddRange(soups); //soupCard插入到MenuCards表 context.MenuCards.Add(soupCard); ShowState(context); int records = context.SaveChanges(); Console.WriteLine($"{records} added"); Console.WriteLine(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine(); }
static void UpdateUntracked(Menu m) { using (var context = new MenusContext()) { ShowState(context); //显示的关联对象到上下文 //EntityEntry<Menu> entry = context.Menus.Attach(m); //设置对象状态是Modified //entry.State = EntityState.Modified; //使用Update方法可以完成关联到上下文并设置对象状态为Modified context.Menus.Update(m); ShowState(context); context.SaveChanges(); } }
private static void UpdateRecords() { Console.WriteLine(nameof(UpdateRecords)); using (var context = new MenusContext()) { Menu menu = context.Menus .Skip(1) .FirstOrDefault(); ShowState(context); //Unchanged menu.Price += 0.2m; ShowState(context); //Modified int records = context.SaveChanges(); Console.WriteLine($"{records} updated"); ShowState(context); //Unchanded } Console.WriteLine(); }
static void AddHundredRecords() { Console.WriteLine(nameof(AddHundredRecords)); using (var context = new MenusContext()) { var card = context.MenuCards.FirstOrDefault(); if (card != null) { var menus = Enumerable.Range(1, 100).Select(x => new Menu { MenuCard = card, Text = $"$menu {x}", Price = 9.9m }); //这是一个批处理,一次性插入100条数据 context.Menus.AddRange(menus); Stopwatch stopwatch = Stopwatch.StartNew(); int record = context.SaveChanges(); stopwatch.Stop(); Console.WriteLine($"{record} records added after ${stopwatch.ElapsedMilliseconds} ms"); } } }