LINQ to SQL - правда ли, что SubmitChanges() автоматически запускает транзакцию?
Мне нужно использовать транзакции с LINQ to SQL, и я читал их, чтобы ознакомиться с ним.
Правда ли, что SubmitChanges уже совершена транзакция?
Ответ 1
Когда вы вызываете SubmitChanges, LINQ to SQL проверяет набор известных объектов, чтобы определить, к ним привязаны новые экземпляры. Если они есть, эти новые экземпляры добавляются в набор отслеживаемых объектов.
Непосредственно перед любыми фактическими изменениями, LINQ to SQL запускает транзакцию для инкапсуляции серии отдельных команд.
Изменения объектов переводится один за другим в команды SQL и отправляются на сервер.
В этот момент любые ошибки, обнаруженные в базе данных, приводят к остановке процесса отправки, и возникает исключение. Все изменения в базе данных откатываются назад, как если бы никаких материалов никогда не происходило.
Для получения дополнительной информации об этом представлении статьи MSDN.