Expresión LINQ con propiedad genérica

Mi pregunta está relacionada con esta:linq-expresión-con-genérico-clase-propiedades

Esta vez me gustaría obtener objetos recién creados que tengan el ID en común. La identificación es, de hecho, la clave externa y, por lo tanto, puede tener nombres diferentes.

Se me ocurrió lo siguiente:

public static IEnumerable<T> GetNew<TId, T>(IQueryable<T> objects, TId id, DateTime date, Expression<Func<T, TId>> idSelector) 
    where T : class, ISyncable<TId>
{
    return objects.Where(o => idSelector(o) == id && o.CreatedDate > date);
}

El método se llamaría así:

var modified = GetNew(dbObjects, id, date, entity => entity.PersonId);

Desafortunadamente me sale el error:

'idSelector' is a variable but is used like a method.

La expresión pasada al método debería hacer algo así:

objects.Where(o => o.PersonId == id && o.CreatedDate > date);

Respuestas a la pregunta(1)

Su respuesta a la pregunta