예제 #1
0
        /// <summary>
        /// Using Transaction Scope. OK
        /// </summary>
        private void Transactions2()
        {
            var dc = new NorthwindDataContext();

            var custId = "ALFKI";

            //Retrieve Customer
            var customer = dc.Customers.SingleOrDefault(c => c.CustomerID == custId);

            if (customer == null)
            {
                string.Format("Customer: [{0}] does NOT exist!").DisplayResults();
                return;
            }

            //Get Latest Customer Order
            var order = customer.Orders.OrderByDescending(o => o.OrderID).FirstOrDefault();

            //Open transaction Scope
            using (var transScope = new System.Transactions.TransactionScope())
            {
                try
                {
                    //Delete Details
                    foreach (var detail in order.Order_Details)
                    {
                        dc.DeleteOrderDetail(detail.OrderID, detail.ProductID);
                    }

                    //Delete Order
                    dc.DeleteOrder(order.OrderID);

                    //Commit Transaction
                    transScope.Complete();
                }
                catch (Exception ex)
                {
                    "Exception".DisplayHeader();
                    ex.Message.DisplayResults();
                }
            }

            //Show Customer Orders
            Display.ShowCustomerOrders(dc, custId);
        }