Извините, если это кажется немного сумасшедшим, но я какое-то время возился с NHibernate и натолкнулся на сценарий, который невозможно решить с помощью NHibernate ...
У меня есть 1 база данных, которая содержит множество статических данных, представьте, что это огромная база данных по поиску товаров, просто чтобы указать, что это пример сценария, мой действительный вариант немного сложнее, но принцип похож на этот ... Он размещен на совершенно другой коробке, поэтому я не могу сделать «database2.table1.somecolumn», который я заметил как возможный способ обойти проблему, если 2 БД были в одной коробке и на сервере.
В любом случае, у меня также есть другая БД, которая содержит данные, относящиеся к пользователям, поэтому представьте, что пользователь купил кучу вещей с общего веб-сайта A, у вас есть список идентификаторов, относящихся к тому, что они купили, и количество их купил, а также некоторую другую информацию, но фактические данные, относящиеся к продукту, хранятся в другой базе данных ...
Итак, если вы предполагаете, что хотите объединить эти данные в модель PreviousPurchasedProduct, которая содержит всю информацию из 1-й базы данных и дополнительные данные из 2-й базы данных, вам придется выполнить запрос, подобный следующему: (если бы они были все на одной коробке)
ВЫБРАТЬ db1.products. , db2.purchases.
ОТ db2.purchases
ВНУТРЕННЕЕ СОЕДИНЕНИЕ db1.products ON db2.purchases.product_id = db1.products.id
ГДЕ db2.purchases.user_id = XXX;
Теперь, во-первых, возможно ли отобразить подобные вещи, даже если они находятся на отдельных хостах БД, я не догадываюсь, и если это так, вы можете достичь этой гибкости через дочерний класс. Таким образом, наличие класса продукта, который работает только на db1, и производного класса, который получает информацию о покупках, которая работает только с db2.
Также возможно ограничить часть данных db1 из операторов INSERT / UPDATE / DELETE, я почти уверен, что вы можете в отображениях по умолчанию, но так как это было бы за пределами области действия каждого класса, я не уверен, какая у меня гибкость. ..
Спасибо, что прочитали мою вафлю: D