NHibernate QueryOver通过分组而不选择按列分组

拉兹万·弗拉维乌斯(RăzvanFlavius)熊猫

有如下查询:

var subquery = SessionFactory.GetCurrentSession()
    .QueryOver<SomeEntity>()
    .Where(_ => _.SomeOtherEntity.Id == someId)
    .SelectList(list => list
        .SelectGroup(x => x.SomeGroupByProperty)
        .SelectMax(x => x.MaxPerGroupProperty))
    .List<dynamic>();

生成的sql同时选择SomeGroupByPropertyMaxPerGroupProperty是否有可能将其分组,SomeGroupByProperty但只能选择最大值MaxPerGroupProperty这用于将子查询结果与父查询中的包含一起使用。

地堡心态

这是NHibernate jira(标准查询)中的一个未解决问题:https : //nhibernate.jira.com/browse/NH-1426

你可以这样做

var subquery =
    QueryOver.Of<SomeEntity>()
        .Where(_ => _.SomeOtherEntity.Id == someId)
        .Select(
            Projections.ProjectionList()
                .Add(Projections.SqlGroupProjection("max(MaxPerGroupProperty) as maxAlias", "SomeGroupByProperty",
                    new string[] { "maxAlias" }, new IType[] { NHibernate.NHibernateUtil.Int32 })));

var parentQuery = session.QueryOver<SomeEntity2>()
    .WithSubquery.WhereProperty(x => x.MaxPerGroupPropertyReference).In(subquery).List();

虽然不像使用实体属性那样漂亮,但是它确实可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Nhibernate获取按列分组的行

来自分类Dev

nHibernate QueryOver和JoinQueryOver

来自分类Dev

NHibernate OR使用QueryOver

来自分类Dev

nHibernate QueryOver继承

来自分类Dev

NHibernate QueryOver与IUserType失败

来自分类Dev

NHibernate QueryOver NullReferenceException

来自分类Dev

NHibernate QueryOver与SelectList

来自分类Dev

nHibernate QueryOver继承

来自分类Dev

NHibernate 中的 QueryOver

来自分类Dev

NHibernate不延迟加载

来自分类Dev

NHibernate不插入孩子

来自分类Dev

NHibernate不延迟加载

来自分类Dev

nHibernate按年份和月份分组(带计数)

来自分类Dev

NHibernate选择复数和

来自分类Dev

多列查询-使用QueryOver的Nhibernate

来自分类Dev

通过NHibernate搜索

来自分类Dev

Nhibernate分组依据-为每个外键选择最新行

来自分类Dev

Nhibernate分组依据-为每个外键选择最新行

来自分类Dev

NHibernate QueryOver主观在哪里?

来自分类Dev

NHibernate QueryOver,其中WhereRestriction为OR

来自分类Dev

NHibernate QueryOver有限制

来自分类Dev

在NHibernate的queryover中使用OR子句

来自分类Dev

NHibernate QueryOver从基础查询子类

来自分类Dev

NHibernate QueryOver主观在哪里?

来自分类Dev

nhibernate通用存储库queryover

来自分类Dev

NHibernate QueryOver,其中WhereRestriction为OR

来自分类Dev

NHibernate QueryOver有限制

来自分类Dev

Nhibernate QueryOver JoinAlias无关实体

来自分类Dev

NHibernate QueryOver投影多对一