Как: использовать одну транзакцию для обновления нескольких агрегатов - PullRequest
1 голос
/ 09 декабря 2011

В нашем приложении мы используем EventStore Джонатана Оливера и CommonDomain. База данных, которую мы используем для хранения наших событий, - это либо SQL Server, либо Oracle.

Для конкретного случая использования у нас есть требование обновить несколько агрегатов с помощью одной команды. Я понимаю, что (в CQRS) в идеале одна команда должна обновлять только один агрегат, но в нашем случае это конкретное требование для обновления нескольких экземпляров одновременно.

Есть ли простой способ (без использования двухфазной фиксации) сделать эту операцию атомарной, и если да, то как это возможно?

Редактировать: Вопрос касается использования инфраструктуры EventStore (и, возможно, хранилища платформы CommonDomain). Это не общий вопрос об обработке транзакций или шаблоне единиц работы (о котором я хорошо знаю)

1 Ответ

0 голосов
/ 09 декабря 2011

Вы можете попробовать Единицу работы. это поможет вам сделать изменения атомарными. Вот ссылка из MSDN о том, как реализовать это с Repository и EF

...