예제 #1
0
        public void TestSet_Batch() {
            //清空
            _orderRepository.Clear();

            //常量定义
            Guid? orderId = Sys.Guid;
            Guid? itemId = new Guid( "59BBE3D4-53C2-468F-AA11-3F9ED2C3A33A" );
            Guid? itemId2 = new Guid( "CACC3EF1-1C8A-4948-BF78-646D826B1BCA" );
            Guid? itemId3 = new Guid( "31EFBD08-3E57-4E82-BF3A-FE979B915972" );

            //初始化订单并添加
            var order = CreateOrder( orderId, itemId, itemId2 );
            _orderRepository.Add( order );

            //构造新订单,item1被删除,item2被修改,item3被新增
            _order = CreateOrder( orderId, itemId2, itemId3 );
            _order.Name = "order2";

            //更新订单
            _orderRepository = Ioc.Create<IOrderRepository>();
            var context = _orderRepository.GetUnitOfWork();
            context.Start();
            _orderRepository.Update( _order );
            context.Commit();

            //查找
            _orderRepository = Ioc.Create<IOrderRepository>();
            _order = _orderRepository.Find( orderId.SafeValue() );

            //验证
            Assert.AreEqual( "order2", _order.Name );
            Assert.AreEqual( 2, _order.Items.Count );
            Assert.AreEqual( "a", _order.Items.First( t => t.Id == itemId2 ).Name );
            Assert.AreEqual( "b", _order.Items.First( t => t.Id == itemId3 ).Name );
        }