Expressão LINQ com propriedades de classe genéricas

Eu gostaria de passar um IQueryable e uma matriz de ids para um método que filtra o IQueryable com base nesses ids.

Como os ids podem ser longos ou int's, devem ser resolvidos genericamente.

Eu vim com o seguinte:

public static IEnumerable<T> GetModified<TId, T>(IQueryable<T> objects, TId[] ids) where T : class
{
        return objects.Where(j => ids.Contains((TId)j.GetType().GetProperty("Id").GetValue(j)));
}

Infelizmente estou recebendo a exceção:

LINQ to Entities não reconhece o método 'System.Object GetValue (System.Object)' método e esse método não pode ser convertido em uma expressão de armazenamento.

questionAnswers(2)

yourAnswerToTheQuestion