public void Multiple_UnitofWorkCommit() { Action work1 = () => { var t14Repo = LocalServiceLocator.GetService <IT14Repository>(); t14Repo.Add(new T14(Guid.NewGuid().ToString("N"), "ok")); t14Repo.Context.Commit(); //return t14Repo.Context; }; Action work2 = () => { var orderRepository = LocalServiceLocator.GetService <IYmtOrderRepository>(); var order = new YmtOrder("aacd0bc4-34e5-4c0f-a255-214d567698cd", "test_order", 77); order.AddOrderLine(new OrderLine(100)) .AddOrderLine(new OrderLine(120)) .AddOrderLine(new OrderLine(150)) .SetAddress(new ReceiptAddress { City = "A", Zip = "B", Street = "C" }); var verify = order.Validator(); Console.WriteLine(verify.Message); Assert.AreEqual(true, verify.Success); orderRepository.AddOrUpdate(e => e.Id, order); orderRepository.Context.Commit(); //return orderRepository.Context; }; MultipleUnitOfWorkBuilder.Instance.Commit(work1, work2); //using (MultipleUnitOfWorkBuilder.Instance.Append(work1).Append(work2).Commit()) //{ //}; }
public void SaveBath_Order() { var orderRepository = LocalServiceLocator.GetService <IYmtOrderRepository>(); //var orderList = new HashSet<Ymt_OrderLine>(); for (var i = 0; i < 50000; i++) { //1. var order = new YmtOrder(Guid.NewGuid().ToString(), "ok", 20M); order.SetAddress(new ReceiptAddress { City = "A", Street = "B", Zip = "CCC" }); //2. //这里是DTO映射到实体 //var order = orderDto.MapTo<OrderDto, Ymt_Order>(); //3. //这里是实体验证(实体需要继承 IValidatableObject 接口),主意:如果不显示执行xx.Validatory 方法,程序会自动隐式执行实体验证 var val = order.Validator(); Assert.AreEqual(true, val.Success, val.Message); //验证的原始写法 //var entityValidator = EntityValidatorFactory.CreateValidator(); //Assert.AreEqual(false, entityValidator.IsValid(order)); //3. // orderRepository.Add(order); } //4 var result = orderRepository.Context.Commit(); Assert.AreEqual(true, result.Success); Assert.AreEqual(3, result.ResultData); }
public void OneToOne_Order() { var order = new YmtOrder(Guid.NewGuid().ToString("N"), "TT", 55.78M); Assert.AreEqual(true, order.Validator().ResultData.Success); //1:1 order.SetAddress(new ReceiptAddress { City = "A", Street = "C", Zip = "D" }); var orderRepository = LocalServiceLocator.GetService <IYmtOrderRepository>(); orderRepository.Add(order); var x = orderRepository.Context.Commit(); Assert.AreEqual(1, x.ResultData); }
public void AddOrUpdateOrder() { var orderRepository = new YmtOrderRepository(new EFUnitOfWork("orderContext"));//LocalServiceLocator.GetService<IYmtOrderRepository>(); var order = new YmtOrder("0000b222-db89-4c4b-b226-1fc694d3d065", "test order", 60); // order.AddOrderLine(new OrderLine(100)) .AddOrderLine(new OrderLine(120)) .AddOrderLine(new OrderLine(150)) .SetAddress(new ReceiptAddress { City = "A", Zip = "B", Street = "C" }); var verify = order.Validator(); Console.WriteLine(verify.Message); Assert.AreEqual(true, verify.Success); orderRepository.AddOrUpdate(e => e.Id, order); orderRepository.Context.Commit(); }