Транзакция на объектах в C # - PullRequest
3 голосов
/ 04 декабря 2009

Мне было интересно, есть ли способ провести транзакцию на объекте. Я задаю этот вопрос для следующей ситуации:

Мы передаем наш объект в наш доступ к данным. Там мы используем транзакции, чтобы убедиться, что база данных не повреждена.

В этом процессе объект может быть изменен (дата изменена, владелец, т. Д.). Но если транзакция не удалась, область транзакций выполняет откат транзакций в базе данных, но не в вашем объекте.

Таким образом, ваш объект (который передается по ссылке) как бы поврежден.

Я надеюсь, что есть решение для этого.

Ответы [ 4 ]

2 голосов
/ 04 декабря 2009

что по этому поводу Транзакции для объектов C #?

2 голосов
/ 04 декабря 2009

Когда вы используете TransactionScope, он будет явно сообщать вам, когда откатится (сообщив вам об ошибке). Если это произойдет, вам не следует продолжать обработку вашего объекта, пока вы не очистите его от источника.

0 голосов
/ 04 декабря 2009

Если вы используете хороший OR-Mapper, такой как NHibernate, вместо пользовательского слоя данных, об этом позаботятся

0 голосов
/ 04 декабря 2009

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

...