Перечень таблиц сопоставления в NHibernate - PullRequest
0 голосов
/ 31 мая 2009

В настоящее время я создаю новое приложение на основе устаревшей базы данных. В приложении есть много таблиц со списком в следующем формате:

table listLanguages
{
    PrimaryId bigint;
    Item varchar(30);
}

... с некоторыми примерами записей вроде этого:

PrimaryId Item
1         English
2         French
3         Spanish
...

Они использовались для заполнения раскрывающихся списков в веб-формах, которые делали такие вещи, как редактирование данных клиента. Когда они были сохранены в записи клиента, использовалось полное строковое значение, а не идентификатор. Я должен сохранить это поведение.

Мой вопрос: каков наилучший способ сопоставить их в моей модели домена с помощью NHibernate?

Я не могу изменить структуру базы данных, и есть много таблиц списков (я бы сказал, около 40).

Ответы [ 2 ]

1 голос
/ 31 мая 2009

Вот что я сделал в проекте: Я создал базовый класс для этих таблиц и создал дочерний класс для каждой из таблиц, унаследованных от этого базового класса, затем у меня были отдельные файлы сопоставления для каждой из таблиц.

Хотя я думаю, что могут быть некоторые более сложные решения, такие как использование IInterceptor для перехвата поведения загрузки или добавление некоторых файлов отображения во время выполнения с помощью класса Configuration, могут быть некоторыми вариантами.

1 голос
/ 31 мая 2009

Я обычно использую генерацию кода для создания C # Enums из соответствующих таблиц базы данных:

public enum Language
{
    NoneSpecified = 0,
    English       = 1,
    French        = 2,
    Spanish       = 3,
    ... 
}

Посмотрите на генерацию кода шаблона T4, встроенную в Visual Studio 2005 и далее.

...