/// <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;
        }