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
select u).First()
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.