protected virtual Expression VisitNhSum(NhSumExpression expression)
		{
			return expression.Accept(this);
		}
        protected virtual Expression BaseVisitNhSum(NhSumExpression expression)
        {
            Expression nx = base.VisitExpression(expression.Expression);

            return nx != expression.Expression ? new NhSumExpression(nx) : expression;
        }
		protected HqlTreeNode VisitNhSum(NhSumExpression expression)
		{
			return _hqlTreeBuilder.Cast(_hqlTreeBuilder.Sum(VisitExpression(expression.Expression).AsExpression()), expression.Type);
		}
 protected virtual Expression VisitNhSum(NhSumExpression expression)
 {
     return VisitUnhandledItem<NhSumExpression, Expression>(expression, "VisitNhSum", BaseVisitNhSum);
 }