我想将一个IQueryable和一组id传递给一个方法,该方法根据这些id过滤IQueryable.
由于id可以是long或int,因此应该通常解决.
我想出了以下内容:
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)));
}
Run Code Online (Sandbox Code Playgroud)
不幸的是我得到了例外:
LINQ to Entities无法识别方法'System.Object GetValue(System.Object)'方法,并且此方法无法转换为存储表达式.