Я хотел бы вернуть DTO из моего уровня данных, который также содержал бы дочерние коллекции ... например, так:
Audio
- Title
- Description
- Filename
- Tags
- TagName
- Comments
- PersonName
- CommentText
Вот базовый запрос, но я не уверен, как преобразовать дочерние коллекции из моей сущности в DTO.
var query = Session.CreateCriteria<Audio>("audio")
.SetProjection(
Projections.ProjectionList()
.Add(Projections.Property<Audio>(x => x.Title))
.Add(Projections.Property<Audio>(x => x.Description))
.Add(Projections.Property<Audio>(x => x.Filename))
).SetResultTransformer(new AliasToBeanResultTransformer(typeof(AudioDto)))
.List<AudioDto>();
Возможно ли это вообще, или есть другой рекомендуемый способ сделать это?
UPDATE :
Просто хочу добавить немного больше информации о моем сценарии ... Я хочу вернуть список элементов Audio для текущего вошедшего в систему пользователя вместе с некоторыми связанными объектами, такими как теги, комментарии и т. Д., - это довольно просто, используя MultiQuery / Будущее.
Тем не менее, при отображении аудио элементов пользователю, я также хочу отобразить 3 других параметра для пользователя:
- Погода они добавили этот аудио пункт в свой список избранного
- Погода, которую они дали этому аудио 'thumbs up'
- Погода вошедший в систему пользователь 'Follow' владелец этого аудио
Favourites : Audio -> HasMany -> AudioUserFavourites
Thumbs Up : Audio -> HasManyToMany -> UserAccount
Following Owner : Audio -> References -> UserAccount ->
ManyToMany -> UserAccount
Надеюсь, что это имеет смысл ... если нет, я попытаюсь объяснить еще раз ... как я могу загрузить эти дополнительные детали для каждого возвращаемого объекта Audio ... Мне также нужна вся эта информация на страницах 20 *. 1028 *
Я посмотрел на пакетную загрузку, но, похоже, он выбирает ВСЕ большие пальцы для каждого объекта Audio, а не проверяет, пролистал ли его только зарегистрированный пользователь.
Извините за бессвязные: -)
Пол