Я поддерживаю приложение, в котором есть много сущностей домена, которые получают данные из более чем одной базы данных. Обычно это работает так, что объекты загружаются из базы данных A (в которой хранится большинство их полей). когда вызывается свойство, соответствующее данным в базе данных B, объект запускает SQL для базы данных B, чтобы получить все соответствующие данные.
В настоящее время я использую ORM «накатить по-своему», который уродлив, но эффективен (и прост для понимания). Недавно я начал использовать NHibernate для сущностей, взятых исключительно из базы данных A, но мне интересно, как я мог бы использовать NHibernate для сущностей, извлеченных из баз данных A и B.
Лучший способ, которым я могу придумать, заключается в следующем. Я продолжаю использовать библиотеку классов на основе NHibernate для сущностей в базе данных A. Те сущности, которым также нужны данные из базы данных B, представляют все свои данные из базы данных B в одном классе, доступ к которому осуществляется через свойство. Когда это свойство вызывается, оно вызывает соответствующий репозиторий, и объект возвращается. Поэтому к библиотеке классов для доступа к базе данных B нужно обращаться из библиотеки классов для доступа к базе данных A.
Имеет ли это какой-то смысл, и есть ли более устоявшийся шаблон для этой ситуации (который должен быть довольно распространенным).
Спасибо
David