2012-08-09 35 views
3

NHibernate的版本3.3.1.4000的LINQ to NHibernate的 - .GroupBy()跳過()採取()導致異常

查詢:

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(); 

如果我的評論跳過/送代碼,它的工作原理。正常。如何在不使用LINQ to NHibernate的OrderBy之後調用ToList()來協同工作?

在此先感謝。

更新:

例外:

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 
+0

您可以發佈您的異常(內部異常/堆棧跟蹤)嗎? – 2012-08-09 09:00:43

+0

我用它更新了身體 – 2012-08-09 09:05:30

+1

這是一個我剛剛遇到的已知問題:https://nhibernate.jira.com/browse/NH-2566 – 2012-08-22 19:56:15

回答

0

邁克爾Petito回答的問題:

這是一個已知的問題,我只是碰到了也: NHibernate的。 jira.com/browse/NH-2566 - Michael Petito 8月22日19:56

正在等待新版本...

+0

這在3.3.3.4000中得到修復:https:// nhibernate .jira.com /瀏覽/ NH-2566 – codekaizen 2013-07-23 17:38:04