2011-10-03 47 views
2

我有这样的nhibernate标准:NHibernate的流利组由

 criteria.Add(Subqueries.PropertyIn("Id", DetachedCriteria.For<ReconItemReconSide>() 
      .SetProjection(Projections.ProjectionList() 
      .Add(Projections.GroupProperty("ReconItemFk")) 
      .Add(Projections.Min("ReconciliationSideFk"))) 
      .Add(Expression.In(Projections.Property("ReconItemFk"), items)) 
      )); 

哪位成为该查询(I已删除了部分从外部选择字段以最小化这里的长度):

SELECT this_.Id      as Id8_0_ 
FROM CI.BM_RECONCILIATION_SIDE this_ 
WHERE this_.Id in (SELECT this_0_.BM_RECON_ITEM    as y0_, 
         min(this_0_.BM_RECONCILIATION_SIDE) as y1_ 
       FROM  CI.BM_RECON_ITEM_RECON_SIDE this_0_ 
       WHERE this_0_.BM_RECON_ITEM in (345061 /* :p0 */,345877 /* :p1 */) 
       GROUP BY this_0_.BM_RECON_ITEM) 

问题是我想让inner-select只选择一个字段(min(this_0_.BM_RECONCILIATION_SIDE)),但groupby还将groupby-field添加到select。

我希望能够创建一个groupby而不必投影groupby字段本身。 查询应类似于此:

SELECT this_.Id      as Id8_0_ 
FROM CI.BM_RECONCILIATION_SIDE this_ 
WHERE this_.Id in (SELECT 
         min(this_0_.BM_RECONCILIATION_SIDE) as y1_ 
       FROM  CI.BM_RECON_ITEM_RECON_SIDE this_0_ 
       WHERE this_0_.BM_RECON_ITEM in (345061 /* :p0 */,345877 /* :p1 */) 
       GROUP BY this_0_.BM_RECON_ITEM) 

不知道如何解决这个问题?

回答

1

好吧,它似乎仍然是一个open issue与nHib。
像他们总是说 - 欢迎你自己实现它.. :)

+0

谢谢 - 它并没有让我接近任何解决方案,但它确实表明,我不是唯一一个这个问题。 –