Chamar Expressão em um LINQ para Entidades Selecionar com o LINQkit

Aqui está o que eu quero fazer:

class MyDbContext : DbContext 
{
    private static Expression<Func<MyClass, int>> myExpression1 = x => /* something complicated ... */;
    private static Expression<Func<Item, int>> myExpression2 = x => /* something else complicated ... */;

    public object GetAllData()
    {
        return (
            from o in MyClassDbSet.AsExpandable() 
            select new 
            {
                data1 = myExpression1.Invoke(o),                      // problem 1
                data2 = o.Items.Select(myExpression2.Compile())       // problem 2
            }
        );
    }
}

ATUALIZAÇÃO:

myExpression tem que ficar separado da minha consulta, porque eu quero reutilizá-lo em várias consultas LINQ.

ATUALIZAÇÃO 2:

SeparadomyExpression para dentromyExpression1 emyExpression2 para deixar claro o fato de que eu quero reutilizá-los separadamente.

ATUALIZAÇÃO 3:

Adicionado LINQkit ao exemplo.

Problema 1 throws: Não é possível converter um objeto do tipo 'System.Linq.Expressions.FieldExpression' para digitar 'System.Linq.Expressions.LambdaExpression'.

Problema 2 throws: Erro interno do Provedor de Dados do .NET Framework 1025.

questionAnswers(2)

yourAnswerToTheQuestion