internal override IEnumerable <PropertyExpression> GetAccessedProperties()
        {
            var accessedProperties = base.GetAccessedProperties();

            if (Where != null)
            {
                accessedProperties = accessedProperties.Concat(Where.GetAccessedProperties());
            }
            if (GroupBy != null)
            {
                accessedProperties = accessedProperties.Concat(GroupBy.GetAccessedProperties());
            }
            if (OrderBy != null)
            {
                accessedProperties = accessedProperties.Concat(OrderBy.GetAccessedProperties());
            }
            if (Skip != null)
            {
                accessedProperties = accessedProperties.Concat(Skip.GetAccessedProperties());
            }
            if (Limit != null)
            {
                accessedProperties = accessedProperties.Concat(Limit.GetAccessedProperties());
            }
            return(accessedProperties);
        }