Поделиться через


Как объединить в пакеты отправку данных с помощью транзакций (LINQ to SQL)

Для объединения запросов к базе данных в брекеты можно использовать класс TransactionScope. Дополнительные сведения см. в разделе Транзакции (LINQ to SQL).

Пример

В следующем коде отправка данных помещается в класс TransactionScope.

        Dim db As New Northwnd("c:\northwnd.mdf")
        Using ts = New TransactionScope()
            Try

                Dim prod1 = db.Products.First(Function(p) p.ProductID = 4)
                Dim prod2 = db.Products.First(Function(p) p.ProductID = 5)
                prod1.UnitsInStock -= 3
                prod2.UnitsInStock -= 5
                db.SubmitChanges()
        ts.Complete()

            Catch e As Exception
                Console.WriteLine(e.Message)
            End Try
        End Using
            Northwnd db = new Northwnd(@"c:\northwnd.mdf");
            using (TransactionScope ts = new TransactionScope())
            {
                try
                {
                    Product prod1 = db.Products.First(p => p.ProductID == 4);
                    Product prod2 = db.Products.First(p => p.ProductID == 5);
                    prod1.UnitsInStock -= 3;
                    prod2.UnitsInStock -= 5;
                    db.SubmitChanges();
            ts.Complete();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }

См. также

Основные понятия

Загрузка образцов баз данных (LINQ to SQL)

Транзакции (LINQ to SQL)

Другие ресурсы

Внесение и отправка изменений данных (LINQ to SQL)