Nhibernate Criteria Query with Join

时间:2010-05-11 00:46:11

标签: nhibernate join criteria distinct

我希望使用NHibernate Criteria Query

执行以下操作

我有“产品”,其中有0到多个“媒体”

产品可以与1到多个ProductCategories

相关联

这些使用middled中的表来创建连接

  

ProductCategories
  标识
  标题

     

ProductsProductCategories
  ProductCategoryId
  产品编号

     

产品
  标识
  标题

     

ProductMedias
  产品编号
  MediaId

     

媒体
  标识
  MediaType

我需要实现条件查询以返回ProductCategory中的所有产品以及前1个关联媒体或不存在媒体(如果不存在)。

因此,虽然例如“T恤”可能有10个媒体关联,但我的结果应该类似于此

Product.Id Product.Title MediaId
1 T恤21
2鞋子无 3帽子43

我使用JoinType.LeftOuterJoin

尝试了以下解决方案
  

1)productCriteria.SetResultTransformer(Transformers.DistinctRootEntity);

这没有用,因为转换完成了代码端,因为我有.SetFirstResult()和.SetMaxResults()用于分页目的它不会工作。

  

2).SetProjection(
      Projections.Distinct(
          Projections.ProjectionList()           .Add(Projections.Alias(Projections.Property(“Id”),“Id”))           ...
     .SetResultTransformer(Transformers.AliasToBean());

这没有奏效,因为我无法在预测中为Medias.Id填充值。 (类似于nHibernate Criteria API Projections

非常感谢任何帮助

0 个答案:

没有答案