Вернуть TSubType из nhibernate QueryOver - PullRequest
0 голосов
/ 22 июля 2011

Я пытаюсь выбрать детей из родительской коллекции с помощью QueryOver в nhibernate. Вот что я пытаюсь сделать в HQL:

SELECT as_kitten FROM Cat as_Cat 
JOIN as_Cat.Kittens as_kitten 

Как это переводится в QueryOver или даже с использованием JoinAlias?

IList<Kitten> kittens =  session.QueryOver<Cat>()
        .JoinQueryOver<Kitten>(c => c.Kittens)
        .Select(??)
        .List()

Самая близкая вещь, которую я смог найти, это NHibernate QueryOver

Приветствия

EDIT Предполагая, что это односторонние отношения, т.е. котята не знают о кошке

1 Ответ

0 голосов
/ 22 июля 2011

Ваш пример кажется довольно тривиальным. Если у вас уже есть родительский объект и вы сопоставили коллекцию как один-ко-многим внутри вашей сущности cat, все, что вам нужно было бы сделать, если бы вы загружались с ленивой загрузкой, - это получить доступ к коллекции.

Если у вас есть только идентификатор родителя, вы можете легко сделать что-то подобное, даже не используя соединение:

IList<Kitten> kittens =  session.QueryOver<Kitten>()
        .Where(k => k.CatId == <parent cat id here>)
        .List<Kitten>()
...