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.