Expresión LINQ con propiedades de clase genéricas

Me gustaría pasar un IQueryable y una matriz de identificadores a un método que filtre el IQueryable en función de esos identificadores.

Como los identificadores pueden ser largos o int, se deben resolver de forma genérica.

Se me ocurrió lo siguiente:

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

Desafortunadamente estoy recibiendo la excepción:

LINQ to Entities no reconoce el método 'System.Object GetValue (System.Object)', y este método no se puede traducir a una expresión de tienda.