Sintaxis de proyección Lambda IQueryable

Tengo un IQueryable cuyos objetos de Entity Framework 4 me gustaría proyectar en sus equivalentes DTO. Uno de esos objetos 'Persona' es una clase EF4, y el POCO PersonP correspondiente es una clase que he definido. Estoy usando Automapper para mapear entre ellos. Sin embargo, cuando intento el siguiente código:

IQueryable<Person> originalModel = _repo.QueryAll();
IQueryable<PersonP> projection = originalModel.Select(e => Mapper.Map<Person, PersonP>(e));

La proyección genera este error en tiempo de ejecución:

LINQ to Entities does not recognize the method 'TestSite.Models.PersonP Map[Person,PersonP](TestSite.DataLayer.Model.Person)' method, and this method cannot be translated into a store expression.

¿Cuál es la sintaxis adecuada para crear unIQueryable<PersonP>&nbsp;proyección usando Automapper? Gracias.

PD Automapper está configurado correctamente: lo uso en otros lugares para convertir de persona a persona y viceversa, es decirMapper.Map<Person, PersonP>(myPersonObject)&nbsp;devuelve correctamente unPersonP&nbsp;objeto.

EDITAR (más código):

Estoy usando esto para una función auxiliar para vincular los POCO de entidad EF4 (PersonP) a una cuadrícula de Telerik, que no serializará las entidades propiamente dichas ya que contienen referencias circulares (es decir, propiedades de navegación). Mi código se ve así:

public static GridModel GetGridModel<TEntity, TPoco>(IRepository<TEntity> repo, GridState gridState) where TEntity : EntityObject
{
 var originalModel = repo.QueryAll().ToGridModel(gridState);
 var projection = originalModel.Select(e => Mapper.Map<TEntity, TPoco>(e));


 return projection.ToGridModel(gridState); // applies filters, sorts, pages, etc...
}

el.ToGridModel&nbsp;El método es un método de extensión enIQueryable&nbsp;y devuelve un objeto complejo que no puedo analizar de manera confiable, por lo que esto me lleva a creer que tengo que realizar el filtrado después de haber realizado la proyección a POCO.

ACTUALIZACIÓN 2:

Intentando simplificar las cosas, hice un método no genérico como este:

public static GridModel GetGridModel2(IRepository<Client> repo, GridState gridState)
{
 IQueryable<Client> originalModel = repo.QueryAll();
 IQueryable<ClientP> projection = originalModel.Select(c => ClientToClientP(c));

 return projection.ToGridModel(gridState);
}

private static ClientP ClientToClientP(Client c)
{
 return new ClientP { Id = c.Id, FirstName = c.FirstName };
}

Este código también falla al crear la proyección. Noto que IQueryable.Select () tiene múltiples sobrecargas: Expression> es una de ellas. ¿Podría representar esta función / delegar llamada usando una de estas sobrecargas?