Для дальнейшего использования ваш вопрос, как прокомментировали другие, плохо сформулирован и расплывчат, и, как правило, на него вряд ли ответят как есть.Но я понимаю, что вы пытаетесь сделать.
Прежде всего, эта модель данных - по сути, проектирование базы данных EAV - может быть очень проблематичной.Если вам абсолютно не нужно иметь это таким образом, который происходит только в определенных типах приложений, если это вообще возможно, изменить рефакторинг на модель базы данных нормальных отношений сущностей и просто избавиться от этой структуры.
Чтобы отобразить это в NHibernate, вам нужно выполнить некоторые настройки:
1) Сначала вы должны создать иерархию наследования.Создайте базовый абстрактный класс, затем из этого базового класса создайте новый конкретный класс, по одному на каждое значение поля value_type
.Таким образом, если value_type
имеет три возможных значения: «Тип1», «Тип2» и «Тип3», у вас будет базовый абстрактный класс, а затем три производных класса, один для Типа1, один для Типа2 и один для Типа 3. Каждый класс.будет иметь свойство, которое будет содержать столбец value
.
2) Создайте отображение для базового класса и производных классов. Вы должны использовать одну табличную модель. Столбец дискриминатора - value_type
, истолбец идентификатора - value_code
. Свойство в классе сопоставлено с value
.
3) В классе, где вы хотите получить доступ к этим значениям, вы должны изменить тип каждого поля на тот жевведите в качестве класса, который вы создали для этого value_type
.
Это должно работать для вас.