NHibernate Свободно группа по - PullRequest
2 голосов
/ 03 октября 2011

У меня есть этот критерий 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))
            ));

- который становится этим запросом (я удалил некоторые поля из внешнего выбора, чтобы минимизировать длину здесь):

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)

Проблема в том, что я хочу, чтобы внутреннее выделение выбрало только одно поле (мин. (This_0_.BM_RECONCILIATION_SIDE)), но 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 Ответ

1 голос
/ 03 октября 2011

ну, похоже, это все еще открытый выпуск с nHib.
как они всегда говорят - вы можете реализовать это сами ..:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...