Generic method to calcuate Euclidean Distance using expressions
===

I'd like a method that can calculate the Euclidean distance using expressions and order an IQueryable:

sqrt[(q1 - p1)^2 + (q2 - p2)^2 + ... + (qn - pn)^2]

This is the method signature I've come up with:


    public static IOrderedQueryable<T> EuclideanDistanceOrder<T>(
		this IQueryable<T> query, IEnumerable<Expression<Func<T, double>>> expressions)
		{
			var orderedQuery = query.OrderBy(i => Math.Sqrt(expressions.Aggregate((total, item) => total + Math.Pow(item, 2))));
            return orderedQuery;
		}

I'm not sure what to do with `item` and `total` (since they are `Expression<Func<T, double>>`).
I've tried this a few different ways, including using `Expression.Power` and `Expression.Add`. I've tried defining the expressions to be composed separately:

	Expression<Func<double, double>> power = i => Math.Pow(i, 2);
	Expression<Func<List<Expression<Func<T, double>>>, double>> dist = (items) => Math.Sqrt(items.Sum(power));
	
But I still don't know what to do with `power`.

Can I get some help? Is there a better way to approach this?