Expressão LINQ com propriedade genérica

Minha pergunta está relacionada a esta:linq-expression-with-generic-class-properties

Desta vez eu gostaria de obter objetos recém-criados que têm o id em comum. O id é na verdade a chave estrangeira e, portanto, pode ter nomes diferentes.

Eu vim com o seguinte:

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);
}

O método seria chamado assim:

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

Infelizmente recebo o erro:

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

A expressão passada para o método deve fazer algo assim:

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

questionAnswers(1)

yourAnswerToTheQuestion