РЕДАКТИРОВАТЬ: предполагается, что ответ ниже NHibernate, заранее извиняюсь, если это не относится к Hibernate
Это не всегда тривиально, даже если его можно реализовать тривиально (см. Ниже), иследует тщательно рассмотреть.По моему опыту, лучше придерживаться старой доброй агрегации или даже просто полей, где каждый член клуба имеет личность, а не личность.Это может не совсем чувствовать правильно, но оно легче работает с вашими конфигурациями, операциями CRUD и вашими абстрактными классами DAO.Инструменты автоматического сопоставления часто не поддерживают создание подклассов "из коробки".
Кроме того, люди, работающие как с вашей базой данных, так и с DAL, будут иметь представление об этом сопоставлении (т. Е. Person как один-к-одному).- одно сопоставление с ClubMember, добавьте ненулевое значение к свойству Person
, и у вас также есть ограничение), поскольку оно больше похоже на базу данных.Вы можете, конечно, утверждать, что вся идея ORM состоит в том, чтобы устранить это сходство;).
Если вы хотите экспериментировать на этом пути или хотите посмотреть, как это делается, и применить его к вашей ситуации, У Айенде есть хороший блог на тему NHibernate и наследования .Это немного базово, но вы поймете идею.Если вы используете Fluent NHibernate, вам станет немного легче, см. этот краткий учебник .