2009-06-06 1 views
0

Я пытаюсь оптимизировать древовидную структуру для своей категории. Модель категории имеет родительскую собственность и набор для детей.Выявление ID от 1: n отношение/tree (NH)

Способ, которым я обычно это делаю, заключается в загрузке всех категорий (звучит плохо, но не более 100 узлов). Затем дерево монтируется вручную, индексируя все категории по id, а затем просматривая родительский элемент parentid. Грязный, но очень быстрый. Проблема в том, что я не знаю, как получить/сопоставить ParentID из родительского отношения при использовании nhibernate.

Скажем у меня есть это отображение в Fluent NHibernate:

 References(cat => cat.Parent,"Parent_id") 
      .FetchType.Select() 
      .WithForeignKey("Category_ParentCategory"); 

Мой вопрос тогда: Как я могу получить или карту ParentID на данной категории, без загрузки Родитель из базы данных?

А также, есть ли у кого практический опыт в картировании деревьев или пробовали http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/05/14/how-to-map-a-tree-in-nhibernate.aspx?

ответ

1

Вы можете сопоставить ParentId как свойство в дополнение к отображению родительского объекта. Вероятно, вы захотите сопоставить ParentId как только для чтения и поместить логику в установщик Parent для установки ParentId.

Однако это может быть необязательно. Если вы заполняете дерево в одном ISession, каждый родитель будет загружаться только из базы данных один раз и извлекаться из кеша при последующих запросах.

 Смежные вопросы

  • Нет связанных вопросов^_^