Отображение на несколько таблиц с помощью Fluent nHibernate

Вот моя ситуация ..
Предположим, у вас есть следующие сущности модели, которые сами по себе представляют отдельные таблицы:

Фильмы [Movie_Id, Title, Rating, ..]
Актеры [Actor_Id, FirstName, LastName, ..]
Режиссер [Director_Id, FirstName, LastName, .. ]

И еще одна сущность / таблица под названием «Рекомендации», которая представляет рекомендации между пользователями на веб-сайте. Идея состоит в том, что рекомендация может быть любого типа, например, кто-то рекомендует актера или кто-то рекомендует фильм.В принципе, таблица должна выглядеть примерно так:

Рекомендации [Идентификатор_рекомендации, Идентификатор_объекта, Тип_объекта, ..]

И вот в чем я застрял. Как я могу сопоставить эти отношения в nHibernate с помощью Fluent? Я имею в виду ... во время сопоставления я не могу указать тип (к которому относится таблица), потому что он определяется во время выполнения, но я не могу полагаться только на идентификатор, потому что сам по себе он не может подразумевать, к какой таблице принадлежит.
Например, представьте себе эту запись в таблице Рекомендаций:

Идентификатор_рекомендации - Идентификатор_объекта - Тип_объекта
83001--4010123 --- "M"

В основном я сохраняю идентификатор символа (в данном случае "M" обозначает таблицу "Movies"), чтобы знать, к какой таблице принадлежит Object_Id. Я не могу просто сохранить Object_Id без Object_Type ..

В качестве заключительного комментария я хотел бы добавить, что я видел все примеры таблицы для каждого класса, таблицы для подкласса, таблицы для конкретного класса, но я считаю, что ни один из них не подходит для данной ситуации, так как Movies_Id, Actors_Id, Director_Id, ... все они разные, как и Рекомендуемый_Id. Я имею в виду, что здесь нет наследования базового класса и дочернего класса, они вообще не разделяют идентификаторы ...

Надеюсь, я поясню. Заранее спасибо.

8
задан Daniel Schilling 25 January 2012 в 03:27
поделиться