Я относительно новичок в NHibernate, но использовал его для последних нескольких программ, и я влюблен. Я пришел к ситуации, когда мне нужно агрегировать данные из 4-5 баз данных в одну базу данных. В частности, это данные серийного номера. Каждая база данных будет иметь свой собственный файл сопоставления, но в конечном итоге все объекты имеют одну и ту же базовую структуру (Serial class).NHibernate: Один базовый класс, несколько сопоставлений
Я понимаю, что NHibernate хочет сопоставление для каждого класса, поэтому моя первоначальная мысль заключалась в том, чтобы иметь базовый Serial Class и затем наследовать его для каждой отдельной базы данных и создавать уникальный файл сопоставления (унаследованный класс будет иметь нулевой контент). Это должно отлично работать для захвата всех данных и заполнения объектов. То, что я хотел бы сделать, это сохранить эти унаследованные классы (не уверен, что такое правильный термин) в таблице базового класса, используя сопоставление базового класса.
Проблема заключается в том, что я не знаю, как заставить NHIbernate использовать определенный файл сопоставления для объекта. Приведение унаследованного класса в базовый класс ничего не делает при использовании 'session.save()' (он жалуется на отсутствие сопоставления).
Есть ли способ явно указать, какое отображение использовать? Или есть только какой-то основной принцип ООП, которого я пропускаю, чтобы более конкретно бросить унаследованный класс в базовый класс? Или эта идея просто плохая.
Все материалы наследования, которые я мог найти в отношении NHibernate (глава 8), по-видимому, не могут быть полностью применимы к этой функции, но я мог ошибаться (класс таблицы за конкретный класс может быть полезен, но я не могу полностью обмануть его в отношении того, как NHibernate определяет, что делать).
Я согласен, это имеет смысл. Я надеялся на серебряную пулю, но то, что вы упомянули, отлично подойдет. – anonymous 2008-11-12 03:22:16