/// <summary>
        /// Translates the <paramref name="listExpression"/> into a string representation.
        /// </summary>
        /// <param name="listExpression">The <see cref="DbListExpression"/> to translate.</param>
        /// <returns><see cref="string"/></returns>
        protected override DbExpression VisitListExpression(DbListExpression listExpression)
        {
            if (listExpression.Count() == 0)
            {
                return(ExpressionFactory.Sql(string.Empty));
            }
            //var syntax =  listExpression.Select(e => Visit(e)).Aggregate((current, next) => current + "," + next);
            var syntax = listExpression.Select(e => Visit(e).ToString()).Aggregate((current, next) => current + "," + next);

            return(ExpressionFactory.Sql(syntax));
        }
        /// <summary>
        /// Translates the <paramref name="listExpression"/> into a string representation.
        /// </summary>
        /// <param name="listExpression">The <see cref="DbListExpression"/> to translate.</param>
        /// <returns><see cref="DbExpression"/></returns>
        protected virtual DbExpression VisitListExpression(DbListExpression listExpression)
        {
            DbExpression[] originalList = listExpression.ToArray();

            var list = VisitListExpression(originalList);

            if (!ReferenceEquals(originalList, list))
            {
                return(ExpressionFactory.List(list));
            }

            return(listExpression);
        }