Проблема запроса NHibernate - PullRequest
       8

Проблема запроса NHibernate

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

Я довольно новичок в NHibernate и начинаю находить дорогу.

У меня есть модель предметной области, похожая на дерево.

Фонды имеют Периоды имеют Выборы имеют Аудиты
Теперь я хотел бы получить все ревизии для конкретного фонда

выглядело бы так, если бы я сделал это в SQL

ВЫБРАТЬ А. *
ОТ АУДИТА
ПРИСОЕДИНИТЬСЯ к выбору S ON A.fkSelectionID = S.pkID
РЕЙТИНГ ПРИСОЕДИНЕНИЯ P ON S.fkPeriodID = P.pkID
ПРИСОЕДИНЯЙТЕСЬ к Фонду F ON P.fkFundID = F.pkID
ГДЕ F.pkID = 1

Все отзывы приветствуются!

Ответы [ 3 ]

1 голос
/ 18 октября 2008
session.CreateCriteria ( typeof(Audit) )
  .CreateCriteria("Selection")
  .CreateCriteria("Period")
  .CreateCriteria("Fund")
  .Add(Restrinction.IdEq(fundId))
1 голос
/ 02 октября 2008

Попробуйте это

select elements(s.Audits)
from Fund as f inner join Period as p inner join Selection as s  
where f = myFundInstance  
0 голосов
/ 28 октября 2008

с использованием LINQ ....

(из вар р в фонд. Периоды let fundPeriodSelections = p.Selections из var selection в fundPeriodSelections выберите выделение. Аудит). ToList ()

... но это зависит от двухсторонних отношений «многие ко многим / один ко многим». Кроме того, я подумал, что вам может понадобиться таблица / класс сопоставления между таблицей Период / Фонд ... но я думаю, вы уже рассмотрели ее.

Надеюсь, что описанная выше система состояний LINQ работает ... это зависит от этих свойств, но мы используем этот проект в качестве примера, который действительно очистил код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...