LINQ to NHibernate -.GroupBy (). Skip (). Take () throws an exception

NHibernate version 3.3.1.4000

Query:

IQueryable<Activity> activities = _repository.GetList<Activity>(); IQueryable<ActivityStatistic> statistics = activities .GroupBy(activity => activity.ActivityLicense.SerialNumber) .Select(grouping => new ActivityStatistic { ActivityCount = grouping.Count(), LicenseCode = grouping.Key }) .OrderBy(stat => stat.LicenseCode); List<ActivityStatistic> result = statistics .Skip(request.StartIndex) .Take(request.Count) .ToList(); 

If I comment on the Skip / Take code, it works correctly. How can I get it to work together without calling ToList () after OrderBy using LINQ to NHibernate?

Thanks in advance.

Update:

An exception:

 The method or operation is not implemented. at NHibernate.Linq.GroupBy.AggregatingGroupByRewriter.FlattenSubQuery(SubQueryExpression subQueryExpression, QueryModel queryModel) at NHibernate.Linq.GroupBy.AggregatingGroupByRewriter.ReWrite(QueryModel queryModel) at NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, Boolean root) at NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory) at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String queryIdentifier, IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory) at NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters) at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow) at NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression) at NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression expression, IQuery& query, NhLinqExpression& nhQuery) at NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression) at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression) at Remotion.Linq.QueryableBase`1.GetEnumerator() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at MBP.AuthorizationService.Logic.LicenseService.GetActivityStatistic(CommonRequest request, Int32& recordsCount) in D:\Projects\MBP.Launcher\MBP.AuthorizationService.Logic\LicenseService.cs:line 201 
+3
source share
1 answer
Michael Petito answered the question:

This is a known issue I encountered: nhibernate.jira.com/browse/NH-2566 - Michael Petito on August 22 at 19:56

Waiting for new releases ...

0
source

Source: https://habr.com/ru/post/922735/


All Articles