LINQ to SQL - правда ли, что SubmitChanges () автоматически запускает транзакцию? - PullRequest
20 голосов
/ 25 марта 2009

Мне нужно использовать транзакции с LINQ to SQL, и я читал, чтобы ознакомиться с ним.

Правда ли, что SubmitChanges уже транзакции?

1 Ответ

39 голосов
/ 25 марта 2009

Когда вы вызываете SubmitChanges, LINQ to SQL проверяет набор известных объектов, чтобы определить, были ли к ним присоединены новые экземпляры. Если они есть, эти новые экземпляры добавляются в набор отслеживаемых объектов.

Непосредственно перед передачей каких-либо фактических изменений LINQ to SQL запускает транзакцию для инкапсуляции последовательности отдельных команд. Изменения в объектах переводятся одна за другой в команды SQL и отправляются на сервер.

В этот момент любые ошибки, обнаруженные базой данных, приводят к остановке процесса отправки и возникновению исключения. Все изменения в базе данных откатываются, как если бы никогда не происходило отправки .

Для получения дополнительной информации об этом представлении Статья MSDN .

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...