Enumerable.Whereaccepts Func<T, bool>.
Queryable.Whereaccepts Expression<Func<T, bool>>.
You call Where with Func<T, bool>, so only the call is applicable Enumerable.Whereand returns IEnumerable<T>.
Change your method to:
public IQueryable<User> Find(Expression<Func<User, bool>> exp)
{
return db.Users.Where(exp);
}
. , SQL.