public void test3() { Order order = new Order(DateTime.Now) { Items = new List<LineItem>() { new LineItem("cheese", 10), new LineItem("ham", 20), new LineItem("dough", 5) }, Customer = new Customer("Nikola") }; Db.Order.Add(order); Db.SaveChanges(); var itemCount = Db.LineItems.Count(); Assert.AreEqual(itemCount, 3); var dough = Db.LineItems.Find(order.Items[2].Id); Assert.AreEqual(dough.Name, "dough"); var orderDto = SerializationUtils.DeepClone(order); orderDto.Items[2].Name = "Pizza dough"; orderDto.Customer.Name = "Petar"; EfWriter.ChangesFrom(orderDto).Include(o => o.Items).Apply(); Db.SaveChanges(); ReinitDb(); order = Db.Order.Find(order.Id); Assert.AreEqual(order.Items[2].Name, "Pizza dough"); Assert.AreEqual(order.Customer.Name, "Nikola"); orderDto = SerializationUtils.DeepClone(order); orderDto.Items[2].Name = "Special pizza dough!"; orderDto.Customer.Name = "Milos"; EfWriter.ChangesFrom(orderDto).Include(o => o.Customer).Apply(); Db.SaveChanges(); ReinitDb(); order = Db.Order.Find(order.Id); Assert.AreEqual(order.Items[2].Name, "Pizza dough"); Assert.AreEqual(order.Customer.Name, "Milos"); }
public void test3() { Order order = new Order(DateTime.Now) { Items = new List<LineItem>() { new LineItem("cheese", 10), new LineItem("ham", 20), new LineItem("dough", 5) } }; Db.Order.Add(order); Db.SaveChanges(); var itemCount = Db.LineItems.Count(); Assert.AreEqual(itemCount, 3); var dough = Db.LineItems.Find(order.Items[2].Id); Assert.AreEqual(dough.Name, "dough"); var orderDto = SerializationUtils.DeepClone(order); orderDto.Items[2].Name = "Pizza dough"; EfWriter.ApplyGraphChanges<Order, LineItem>(orderDto); Db.SaveChanges(); ReinitDb(); dough = Db.LineItems.Find(order.Items[2].Id); Assert.AreEqual(dough.Name, "Pizza dough"); orderDto = SerializationUtils.DeepClone(order); orderDto.Items[2].Name = "Special pizza dough!"; EfWriter.ApplyGraphChanges<Order, Customer>(orderDto); Db.SaveChanges(); ReinitDb(); dough = Db.LineItems.Find(order.Items[2].Id); Assert.AreEqual(dough.Name, "Pizza dough"); }
public void referencing_entities_enough_one_way() { Order order = new Order(DateTime.Now); Db.Order.Add(order); Db.SaveChanges(); ReinitDb(); var item = new LineItem("cheese", 10); item.Order = Db.Order.Find(order.Id); Db.LineItems.Add(item); Db.SaveChanges(); ReinitDb(); item = Db.LineItems.Find(item.Id); order = Db.Order.Find(order.Id); Assert.IsNotNull(item.Order); Assert.AreEqual(order.Items.Count, 1); order = new Order(DateTime.Now); Db.Order.Add(order); Db.SaveChanges(); ReinitDb(); item = new LineItem("cheese", 10); order.Items = new List<LineItem>() { item }; Db.SaveChanges(); ReinitDb(); item = Db.LineItems.Find(item.Id); order = Db.Order.Find(order.Id); Assert.IsNotNull(item.Order); Assert.AreEqual(order.Items.Count, 1); }
public void attaching_entity_with_relations_and_saving_removes_relations() { var order = new Order(DateTime.Now) { Items = new List<LineItem>() { new LineItem("cheese", 10), new LineItem("ham", 20), new LineItem("dough", 5) } }; Db.Order.Add(order); Db.SaveChanges(); ReinitDb(); order = Db.Order.Find(order.Id); Assert.AreEqual(order.Items.Count, 3); ReinitDb(); Db.Configuration.ProxyCreationEnabled = false; order = SerializationUtils.DeepClone(Db.Order.Find(order.Id)); order.OrderTime = DateTime.Now; Db.Entry(order).State = EntityState.Modified; Db.SaveChanges(); Db.Configuration.ProxyCreationEnabled = true; ReinitDb(); order = Db.Order.Find(order.Id); Assert.AreEqual(order.Items.Count, 0); }
public void test4() { Order order = new Order(DateTime.Now) { Items = new List<LineItem>() { new LineItem("cheese", 10), new LineItem("ham", 20), new LineItem("dough", 5) }, Customer = new Customer("Nikola") }; Db.Order.Add(order); Db.SaveChanges(); var itemCount = Db.LineItems.Count(); Assert.AreEqual(itemCount, 3); var dough = Db.LineItems.Find(order.Items[2].Id); Assert.AreEqual(dough.Name, "dough"); var orderDto = SerializationUtils.DeepClone(order); orderDto.Items.Add(new LineItem("Ketchup", 1)); orderDto.Items.Add(new LineItem("Mayo", 1)); EfWriter.ApplyGraphChanges<Order, LineItem>(orderDto); Db.SaveChanges(); ReinitDb(); order = Db.Order.Find(order.Id); Assert.AreEqual(order.Items.Count, 5); }