public IQueryable CreateQuery()
        {
            GroupDescriptorExpressionBuilder childBuilder = null;
            foreach (GroupDescriptor groupDescriptor in groupDescriptors.Reverse())
            {
                var builder = new GroupDescriptorExpressionBuilder(this.queryable, groupDescriptor, childBuilder, notPagedData);
                builder.Options.LiftMemberAccessToNull = queryable.Provider.IsLinqToObjectsProvider();
                childBuilder = builder;
            }

            if (childBuilder != null)
            {
                return childBuilder.CreateQuery();
            }

            return queryable;
        }
 public GroupDescriptorExpressionBuilder(IQueryable queryable, GroupDescriptor groupDescriptor, GroupDescriptorExpressionBuilder childBuilder, IQueryable notPagedData)
     : base(queryable)
 {
     this.groupDescriptor = groupDescriptor;
     this.childBuilder = childBuilder;
     this.notPagedData = notPagedData;
 }