Свободное владение Nhibernate, как справиться со многими, которые действительно есть только у одного? - PullRequest
3 голосов
/ 17 сентября 2010

В настоящее время у меня есть таблица «ComponentAnalysis» и таблица «HistoryOfUse», которую я пытаюсь отобразить в Fluent NHibernate.

Анализ компонентов должен иметь только 1 историю использования, и история использования должна принадлежатьдо 1 компонент анализа.Это подсказало бы мне, что таблицы должны быть настроены для отображения 1: 1.Но разработчик БД не настроил его таким образом.

Вместо этого «HistoryOfUse» имеет столбец «ComponentAnalysisID», чтобы указать, к какому компонентному анализу он принадлежит.Чтобы соответствовать базе данных, у меня должны быть ссылки на HistoryOfUse. ComponentAnalysis и ComponentAnalysis должны иметь HasMany HistoryOfUse.

Но если я делаю это, мне нужен список типов HistoryOfUse, который выглядит довольно раздражающим.Есть ли способ настроить это, не изменяя базу данных, чтобы позволить ComponentAnalysis иметь единственный объект HistoryOfUse, даже если, согласно структуре БД, он должен иметь их список?

1 Ответ

2 голосов
/ 06 апреля 2011

Вы можете использовать метод HasOne для отображения ваших классов. Здесь - подробная статья об этом. Ваш класс ComponentAnalysis будет "HasOne (x => x.HistoryOfUse)". Столбец HistoryOfUse.ComponentAnalysisID должен представлять собой уникальный ключ и внешний ключ, на который ссылается столбец ComponentAnalysis.ID.

...