LINQ-Ausdruck mit generischen Klasseneigenschaften

Ich möchte ein IQueryable und ein Array von IDs an eine Methode übergeben, die das IQueryable basierend auf diesen IDs filtert.

Da die IDs entweder long oder int sein können, sollte sie generisch gelöst werden.

Ich habe mir folgendes ausgedacht:

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

Leider bekomme ich die Ausnahme:

LINQ to Entities erkennt die Methode 'System.Object GetValue (System.Object)' nicht und diese Methode kann nicht in einen Geschäftsausdruck übersetzt werden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage