jon*_*iba 1 nhibernate nhibernate-criteria
我正在使用条件API,查询我无法真正更改的映射文件.有一个根实体,其中有许多子实体加入,并且某些查询要求我们添加
criteria.SetResultTransformer(CriteriaSpecification.DistinctRootEntity);
Run Code Online (Sandbox Code Playgroud)
为了避免在由于连接而存在多个SQL结果行时获取重复实体.问题是现在我还想要应用别名到bean的转换器,如下所示:
criteria.SetResultTransformer(Transformers.AliasToBean(typeof(MyDto)));
Run Code Online (Sandbox Code Playgroud)
使用这些中的任何一个都很棒.但是,我需要将它们组合在一起:我只想将所需的列加载到DTO对象中,并且只获取不同的根实体.我怎样才能做到这一点?
要仅将所需列加载到DTO,您可以使用DistinctEntityRootTransformer投影,如下所示
ICriteria criteria = session.CreateCriteria(typeof(YourEntity));
criteria.SetProjection(
Projections.Distinct(Projections.ProjectionList()
.Add(Projections.Alias(Projections.Property("Property"), "Property")));
criteria.SetResultTransformer(
new NHibernate.Transform.AliasToBeanResultTransformer(typeof(MyDto)));
IList list = criteria.List();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2536 次 |
最近记录: |