Альтернатива точке сохранения при использовании System.Transactions - PullRequest
4 голосов
/ 24 марта 2011

Как я могу использовать классы из System.Transactions пространства имен для достижения аналогичного эффекта, который можно получить при использовании SqlTransaction.Save (savePoint) и SqlTransaction.Rollback (savePoint) . Результатом использования этих двух методов является возможность создания именованной точки сохранения в выполняющейся транзакции, а в случае отката проблемы - только до точки сохранения (операции, созданные до точки сохранения, не откатываются).

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Точки сохранения являются специфичными для базы данных в части их реализации.Oracle реализует их, и, очевидно, так же, как SQL-сервер.

System.Transactions предназначен для полнопроходных транзакций, а не промежуточных точек сохранения на пути транзакции.

Увы, потому что было бы неплохо иметь эту функцию в базе данных с наименьшим общим знаменателем: ACCESS JET.

2 голосов
/ 05 апреля 2013

yourcontext.Database.ExecuteSqlCommand (string.Concat ("сохранить транзакцию", savePoint));

yourcontext.Database.ExecuteSqlCommand (string.Concat ("транзакция отката", savePoint));

...