Skip to content

Support MemberInit expression in group by #2221

Closed
@Molinware

Description

@Molinware

Execute this query gives the following exception:

public class Company
{
    public int Id { get; set; }
    public string Description { get; set; }
}

public class CompanyDto
{
    public int Id { get; set; }
    public string Description { get; set; }
}

var query = session.Query<Company>()
    .Select(x =>
        new CompanyDto()
	{
	    Id = x.Id,
	    Description = x.Description,
	})
    .GroupBy(x => x.Id)
    .Select(x =>
        new CompanyDto()
	{
	    Id = x.Key,
	    Description = x.Max(y => y.Description),
	});

query.ToList()
The method or operation is not implemented
[StackTrace]
in NHibernate.Linq.GroupBy.GroupBySelectClauseRewriter.VisitMember(MemberExpression expression)
in NHibernate.Linq.Expressions.NhAggregatedExpression.VisitChildren(ExpressionVisitor visitor)
in NHibernate.Linq.Expressions.NhExpression.Accept(ExpressionVisitor visitor)
in NHibernate.Linq.GroupBy.GroupBySelectClauseRewriter.ReWrite(Expression expression, GroupResultOperator groupBy, QueryModel model)
in NHibernate.Linq.GroupBy.GroupBySelectClauseRewriter.VisitSubQuery(SubQueryExpression expression)
in System.Linq.Expressions.ExpressionVisitor.VisitMemberAssignment(MemberAssignment node)
in System.Linq.Expressions.ExpressionVisitor.Visit[T](ReadOnlyCollection`1 nodes, Func`2 elementVisitor)
in System.Linq.Expressions.ExpressionVisitor.VisitMemberInit(MemberInitExpression node)
in NHibernate.Linq.GroupBy.GroupBySelectClauseRewriter.ReWrite(Expression expression, GroupResultOperator groupBy, QueryModel model)
in NHibernate.Linq.GroupBy.AggregatingGroupByRewriter.<>c__DisplayClass2_0.<FlattenSubQuery>b__0(Expression s)
in Remotion.Linq.Clauses.SelectClause.TransformExpressions(Func`2 transformation)
in NHibernate.Linq.GroupBy.AggregatingGroupByRewriter.FlattenSubQuery(QueryModel queryModel, QueryModel subQueryModel, GroupResultOperator groupBy)
in NHibernate.Linq.GroupBy.AggregatingGroupByRewriter.ReWrite(QueryModel queryModel)
in NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, Boolean root, Nullable`1 rootReturnType)
in NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory, Boolean filter)
in NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory)
in NHibernate.Engine.Query.QueryExpressionPlan.CreateTranslators(IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory)
in NHibernate.Engine.Query.QueryExpressionPlan..ctor(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory)
in NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters)
in NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow)
in NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression)
in NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression expression, IQuery& query)
in NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)
in NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)
in Remotion.Linq.QueryableBase`1.GetEnumerator()
in System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
in System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions