我想从我的数据层返回一个 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>();
这甚至可能吗,还是有另一种推荐的方法?
更新:只想添加一些关于我的场景的更多信息......我想将音频项目列表返回给当前登录的用户以及一些相关的实体,如标签、评论等......这些都相当简单使用多查询/未来。
但是,在向用户显示音频项目时,我还想向用户显示 3 个其他选项:
- 天气他们已将此音频项目添加到他们的收藏夹列表中
- 天气他们给这个音频“竖起大拇指”
- 天气登录用户正在“关注”此音频的所有者
Favourites : Audio -> HasMany -> AudioUserFavourites Thumbs Up : Audio -> HasManyToMany -> UserAccount Following Owner : Audio -> References -> UserAccount ->
多对多 -> 用户帐户
希望这是有道理的...如果不是,我会尝试再次解释...我如何急切地为每个返回的音频实体加载这些额外的详细信息...我还需要 20 页中的所有这些信息。
我查看了批量获取,但这似乎为每个音频实体获取了所有的赞,而不是检查是否只有登录的用户赞了它。
很抱歉漫无边际:-)
保罗