Cómo usar predicados en LINQ para Entidades para objetos de Entity Framework

Estoy usando LINQ a los objetos Entidades para Entity Framework en mi capa de acceso a datos.

Mi objetivo es filtrar todo lo que pueda de la base de datos, sin aplicar la lógica de filtrado a los resultados en memoria.

Para ese propósito, la capa de lógica de negocios pasa un predicado a la capa de acceso a datos.

quiero decir

Func<MyEntity, bool>

Entonces, si uso este predicado directamente, como

public IQueryable<MyEntity> GetAllMatchedEntities(Func<MyEntity, Boolean> isMatched)
{
    return qry = _Context.MyEntities.Where(x => isMatched(x));
}

Estoy recibiendo la excepción

[System.NotSupportedException] --- {"El tipo de nodo de expresión LINQ 'Invocar' no es compatible con LINQ para entidades."}

Solución enesa pregunta sugiere usar el método AsExpandable () deLINQKit biblioteca.

Pero de nuevo, usando

public IQueryable<MyEntity> GetAllMatchedEntities(Func<MyEntity, Boolean> isMatched)
{
    return qry = _Context.MyEntities.AsExpandable().Where(x => isMatched(x));
}

Estoy recibiendo la excepción

No se puede convertir el objeto de tipo 'System.Linq.Expressions.FieldExpression' para escribir 'System.Linq.Expressions.LambdaExpression'

¿Hay alguna forma de usar el predicado en la consulta de LINQ to Entities para los objetos de Entity Framework, de modo que se transforme correctamente en una declaración SQL?

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta