У меня есть много таблиц в моей схеме (устаревшие, не могут быть изменены) с шаблоном:
Widget
-----------
WIDGET_ID (int, PK)
WIDGET_TYPE_ID (int, FK)
WidgetType
-----------
WIDGET_TYPE_ID (int, PK)
WIDGET_TYPE_NAME (varchar)
пример записей виджетов:
WIDGET_ID | WIDGET_TYPE_ID (FK)
1 3
2 4
пример записей WidgetType:
WIDGET_TYPE_ID | WIDGET_TYPE_NAME
3 "Foo"
4 "Bar"
В основном многие таблицы в моей БД имеют соответствующие таблицы «Тип», связанные с ними, которые я хотел бы построить как перечисления в объектной модели, то есть:
Widget newWidget = new Widget();
newWidget.WidgetType = WidgetType.Foo;
Есть ли ЛЮБОЙ способ сделать это с помощью NHibernate, если да, то как будет выглядеть отображение? Если нет, то какое наилучшее приближение? Единственный способ, которым я мог придумать, - это создать (не сохраняемый) тип перечисления в коде, который соответствует идентификаторам типов:
enum WidgetType { Foo=3, Bar=4 };
Но я бы предпочел не поддерживать это перечисление, так как вещи добавляются / удаляются из БД ...