2009-12-29 4 views
4

У меня есть проект, в котором я использую NHibernate как ORM в своих хранилищах. Но после некоторого CQRS чтения я хочу попробовать и «скопировать» некоторые мои данные в другие таблицы для просмотра запроса/отчетности. Смысл, когда, например, создается новый клиент, я хотел бы, чтобы часть информации о клиенте и компании копировалась в другую таблицу, используя некоторые объединения, только для того, чтобы запросить их позже, без необходимости присоединяться и проходить через весь разные DTO s и другие слои, см. CQRS :)Перемещение данных в другую таблицу после сохранения в NHibernate

Теперь проблема в том, как я должен это реализовать? Я могу сделать некоторые хранимые процедуры, syncCustomer, для вызова после моего создания клиента, но это путь?

Как еще я мог это сделать?

+0

Когда вы делаете это так, вы не пропустите RS из CQRS, может быть, вы можете прочитать некоторые больше о CQRS и поиске событий. – Paco

+1

Вам может понравиться этот пример, если вы еще не знаете: http://github.com/MarkNijhof/Fohjin Это пример cqrs с минимальным количеством инструментов. Полезно узнать больше об этой концепции, но вы, вероятно, хотели бы реализовать ее по-разному с помощью таких инструментов, как nhibernate и servicebus в реальном приложении. – Paco

ответ

3

Пако прав, вы должны изучить источники событий и потенциально использовать архитектуру обмена сообщениями для поддержки этого. Udi Dahan содержит несколько замечательных статей, которые действительно помогли мне лучше понять эти концепции.

В самом деле, последнее сообщение о именно это: http://www.udidahan.com/2009/12/09/clarified-cqrs/

+0

спасибо, просто прочитайте статью. Я думаю, что я неверно истолковал «как» немного :). Я мог бы взглянуть на автобус nservice –

+0

Вам не нужно начинать с реального сервиса. Вы можете начать создавать небольшой автобус (+ - 100 LOC), который делает именно то, что вам нужно, и позже изучить NServicebus (или некоторые другие esb). Вы можете сосредоточиться на CQRS с очень ограниченной шиной. NServicebus и его согласие потребуют много часов обучения. – Paco

+0

Снова я согласен с Пако, я также довольно новичок в этом материале и создал свою очень минимальную служебную шину, это дает вам лучшее представление об архитектуре без накладных расходов. –

Смежные вопросы