protected override Expression VisitConstantExpression (ConstantExpression expression)
{
ArgumentUtility.CheckNotNull ("expression", expression);
var collection = expression.Value as ICollection;
if (collection != null)
return new SqlCollectionExpression (expression.Type, collection.Cast<object>().Select (Expression.Constant).Cast<Expression>());
return base.VisitConstantExpression (expression);
}