nHibernate, я могу сопоставить с таблицей, которая не имеет сопоставления строки на объект? - PullRequest
1 голос
/ 16 октября 2008

У меня есть база данных, которая содержит таблицу, которая выглядит примерно так:

PropertyId, EntityId, Значение

PropertyId и EntityId являются комбинированным первичным ключом. Каждый объект распределен по нескольким строкам, где каждая строка содержит одно свойство объекта. У меня нет контроля над этой базой данных, поэтому мне придется работать с ней.

Можно ли использовать NHibernate для сопоставления сущностей из этой таблицы отдельным объектам? Мне нужно только читать из этой таблицы, это может немного облегчить ситуацию. Или мне было бы лучше использовать DataReaders и самостоятельно выполнять сопоставление?

Ответы [ 2 ]

2 голосов
/ 16 октября 2008

Не совсем так, но вы могли бы использовать пользовательский запрос SQL для определения ваших сущностей (отличный идентификатор сущности плюс любые атрибуты уровня сущности), см. здесь .

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

Если вы счастливы, что они являются собранием сущности, тогда это не должно быть проблемой.

1 голос
/ 17 октября 2008

Я не могу вспомнить точный синтаксис, но map сделает это:

<map name='Values' table='EntityPropertyValue'>
  <key column='EntityId'  />
  <index-many-to-many class='Person' column='PersonId' />
  <element column='Value' type='object' />
</map>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...