родимые,LightSwitch: Распределенные транзакции на Azure
У меня есть сценарий, где я должен выполнять обновления на внутренней базе данных LightSwitch и вызвать некоторые SQL хранимых процедур в экономии трубопровода все в одной операции, например, что если ошибка произошел в конвейере LS save, тогда мои вызовы хранимой процедуры откатываются назад.
Рекомендуемый способ сделать это: создать внешнюю транзакцию в событии SaveChanges_Executing и избавиться от нее в событиях SaveChanges_Executed и SaveChanges_ExecuteFailed. Как описано в этих статьях http://www.codemag.com/Article/1103071
Но это имеет две фатальных проблем:
- Это не работает, когда я публикую приложение на Azure, так как распределенные транзакции не поддерживаются там.
- Также он выдает сообщение об ошибке при попытке сохранить изменения в источниках ApplicationData с использованием ServerApplicationContext. Ошибка заключается в следующем: Исходный провайдер не выполнил транзакции в EnlistTransaction
Кто-нибудь нашел более чистый способ обработки транзакций в LightSwitch, который работает как на Azure, так и через ServerApplicationContext ??
Большое спасибо