You need to tell us what errors you get, but EF does not like functions inside it. Do this instead:
DateTime dt = DateTime.Now.AddHours(-12);
var customUser = (from u in context.Users
join pr in context.PasswordRecoveries on u.Id equals pr.userId
where pr.url == token && pr.requestDateTime < dt
Then if it still does not work, tell us what error you get, so we can help you further.
You can also use FirstOrDefault() if it won't always find a value. You should also use an order by if you're using 'first' and there could be more than one record, or the one you get will be essentially random.