Wyrażenie LINQ z właściwościami klasy ogólnej

Chciałbym przekazać IQueryable i tablicę identyfikatorów do metody, która filtruje IQueryable na podstawie tych identyfikatorów.

Ponieważ identyfikatory mogą być długie lub int, powinny być rozwiązywane w sposób ogólny.

Wymyśliłem następujące:

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

Niestety otrzymuję wyjątek:

LINQ to Entities nie rozpoznaje metody metody „System.Object GetValue (System.Object)” i tej metody nie można przetłumaczyć na wyrażenie magazynu.

questionAnswers(2)

yourAnswerToTheQuestion