LINQ to SQL MAX dans la clause where

Je suis Linq donc, comme prévu, j'ai rencontré des difficultés.
Ce que je suis en train de réaliser est ce:

SELECT id, name, password
FROM users u
WHERE u.id = (SELECT MAX(u1.id) FROM users u1);

Mon Linq est:

var dbUsers = from u in context.Users
              where u.Id == (context.Users.Max(u1 => u1.Id))
              select u;

Mais je finis toujours avec l'exception suivante:

Impossible de créer une valeur constante de type 'Bla.Les utilisateurs'. Seule primitive
types ("comme Int32, String et Guid") sont pris en charge dans cette
contexte.

Ici est la classe users:

public class Users
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
        public string Password { get; set; }
    }
}

Voici ma classe de contexte:

 public class EFDbContext : DbContext
    {
        public DbSet<User> Users{ get; set; }
    }

OriginalL'auteur Michael H. | 2011-09-02