У меня есть сценарий, в котором у меня новое приложение, построенное с использованием архитектуры NHibernate и S # arp.Это приложение интегрируется в устаревшее приложение, которое не использует NHibernate.Будут отдельные базы данных для старых и новых приложений.Я могу успешно читать объекты из обеих баз данных, используя два заводских ключа S # arp NHiberate (подробности здесь ).Это все прекрасно работает.Моя проблема - когда я хочу сопоставить свойство из класса в моем новом приложении с объектом в устаревшей базе данных.Рассмотрим следующий сценарий:
public class NewUser
{
public virtual LegacyUser LegacyUser { get; set; }
}
public class LegacyUser
{
public virtual string UserName { get; set; }
}
Я могу прочитать свои объекты NewUser, но когда я пытаюсь сослаться на свойство LegacyUser, я получаю ошибку:
System.Data.SqlClient.SqlException: Invalid object name 'NewSchema.LegacyUser'.
Я подозреваю, что это происходит из-засеанс, который извлекает объекты NewUser, ничего не знает о сеансе, который требуется для чтения старых пользовательских объектов.Ключ фабрики сеанса обычно указывается в репозитории S # arp.
Я пытался указать схему в отображении, но это тоже не работает.
mapping.Schema("OldSchema");
Вопрос:Есть ли способ указать в отображении Fluent NHibernate, что, когда объект NewUser пытается прочитать объект LegacyUser, ему нужно использовать другую фабрику сеансов?Или мне нужно вручную читать объекты из устаревшей базы данных и вставлять их в мои новые классы?
Заранее спасибо!