Optimize OrderBy Generic Method
Removed unnecessary concatenation.

public static IQueryable&lt;T&gt; Sort&lt;T&gt;(this IQueryable&lt;T&gt; query, List&lt;SortationDto&gt; sortations)
    where T : BaseEntity
{
    List&lt;SortationDto&gt; combined = sortations.Where(s =&gt; s.Concatenated.Count == 0).Union(sortations.SelectMany(so =&gt; so.Concatenated)).ToList();

    combined.ForEach(s =&gt;
    {
        ParameterExpression parameter = Expression.Parameter(query.ElementType, "item");
        Expression value = s.Column.Split('.').Aggregate((Expression)parameter, Expression.PropertyOrField);
        LambdaExpression predicate = Expression.Lambda(value, parameter);

        string methodName = (combined.IndexOf(s) == 0 ? "Order" : "Then") + (s.Direction == "asc" ? "By" : "ByDescending");
        MethodCallExpression orderBy = Expression.Call(typeof(Queryable), methodName, new Type[] { query.ElementType, value.Type }, query.Expression, Expression.Quote(predicate));             
        query = query.Provider.CreateQuery&lt;T&gt;(orderBy);
    });

    return query;
}