Dado que LINQ to Entities no admite “métodos personalizados”, ¿cómo puede mantenerse SECO?

Me he encontrado con este problema:

Los métodos personalizados y los métodos de extensión no se pueden traducir a una expresión de tienda

Básicamente, tengo algunas consultas LINQ complicadas, por lo que quise dividirlas en subconsultas que se implementan como métodos que devuelven IQueryables. Mi esperanza era que estos IQueryables pudieran componerse juntos en una declaración LINQ (como estoy bastante seguro de que puedes hacer en LINQ to SQL).

El problema es que si intentas esto obtienes (por ejemplo):

LINQ to Entities no reconoce el método 'System.Linq.IQueryable`1 [Thread] GetThreadsByMostReccentlyPosted (Int32)', y este método no se puede traducir a una expresión de tienda.

Me parece bastante fundamental que si usas un LINQ ORM, necesitas ser capaz de componer las consultas de LINQ. De lo contrario, cualquier lógica de consulta común tiene que ser copiada y pegada.

Dada esta limitación, ¿cómo se supone que debo permanecer SECO con LINQ para las Entidades?

Respuestas a la pregunta(2)

Su respuesta a la pregunta