2013-06-26 3 views
2

Мне интересно, если это правильный подход для хранения TransactionScope в сеансе в приложении ASP.NET для достижения атомной транзакции через несколько запросов RESTful. Я проверил некоторые соответствующие статьи о партии, такие, как этот:Хранить транзакцию в сеансе

REST and Batch

Однако этот подход ограничивает операции в рамках партии быть коррелированы. То, что я хочу достичь, это что-то вроде:

POST/счет, чтобы создать учетную запись и вернуть идентификатор аккаунта PUT/пользователя/1, чтобы обновить пользователя с возвращаемой счета ид

Это может быть легко достигнуто с два запроса RESTful. Однако я хотел бы обеспечить целостность данных. Следовательно, операция должна быть атомарной.

Что я могу придумать, это использовать сеанс для хранения объекта TransactionScope. Сделайте два запроса RESTful как обычно и совершите транзакцию в третьем запросе и удалите объект и сеанс TransactionScope.

Может быть, это правильный подход? Я пропустил что-нибудь (может быть, замки?)

Спасибо!

James

ответ

0

Это звучит как плохая идея. Ожидаемые услуги должны быть без гражданства.

Если вам нужны транзакции, вы должны посмотреть на WCF ...

+0

Да. Я в какой-то степени согласен с вами. Но с точки зрения совместимости, WCF, похоже, тоже не является хорошей идеей. Насколько это плохо, если я поместил TransactionScope в сеанс (или кеш) и установил для этого истечение? –