Orden múltiple de LINQ por

He creado una función que tiene el siguiente parámetro:

List<Expression<Func<CatalogProduct, bool>>> orderBy = null

Este parámetro es opcional. Si se completa, debería crear un orden por y para mí por construcción, de modo que pueda ordenar el resultado en el servidor SQL.

Lo intenté:

            IOrderedQueryable temp = null;
            foreach (Expression<Func<CatalogProduct, bool>> func in orderBy)
            {
                if (temp == null)
                {
                    temp = catalogProducts.OrderBy(func);
                }
                else
                {
                    temp = temp.ThanBy(func);
                }
            }

Pero el que By no se reconcilia. ¿Alguien sabe cómo puedo resolver este problema?

Lo cambié a .ThenBy () pero esto solo se permite directamente después de .OrderBy () y no en un IOrderedQueryable

entonces temp = catalogProducts.OrderBy (func) .ThenBy (func); está permitido pero temp = catalogProducts.OrderBy (func); temp = temp.ThenBy (func); no es

¿Cualquier otra sugerencia?

Respuestas a la pregunta(3)

Su respuesta a la pregunta