Vérifier si un utilisateur est dans un rôle dans asp.net mvc Identité

Je vais avoir un problème de semis de ma base de données avec des utilisateurs et des rôles.

L'Utilisateur et le Rôle sont à la fois créés (je peux les voir dans la base de données après l'erreur est levée).

Cependant, lorsque j'essaie de vérifier si l'utilisateur est dans un rôle, j'obtiens une exception.

Mon code est:

    public class tbInitializer<T> : DropCreateDatabaseAlways<tbContext>
    {
    protected override void Seed(tbContext context)
    {
        ApplicationDbContext userscontext = new ApplicationDbContext();
        var userStore = new UserStore<ApplicationUser>(userscontext);
        var userManager = new UserManager<ApplicationUser>(userStore);

        var roleStore = new RoleStore<IdentityRole>(userscontext);
        var roleManager = new RoleManager<IdentityRole>(roleStore);


        if(!userscontext.Users.Any(x=> x.UserName=="marktest"))
        {
            var user = new ApplicationUser { UserName = "marktest", Email = "[email protected]" };
            userManager.Create(user, "Pa$$W0rD!");
        }

        if (!roleManager.RoleExists("Admin"))
        { 
            roleManager.Create(new IdentityRole("Admin"));
        }

        if(!userManager.IsInRole("marktest","Admin"))
        { 
            userManager.AddToRole("marktest","Admin");
        }

Cependant, sur la ligne:

if(!userManager.IsInRole("marktest","Admin"))

Une exception est levée avec l'erreur: UserId not found.

L'Utilisateur et le Rôle sont à la fois dans la base de données lorsque je vérifie après l'exception est levée:

Vérifier si un utilisateur est dans un rôle dans asp.net mvc Identité

Vérifier si un utilisateur est dans un rôle dans asp.net mvc Identité

N'importe qui peut voir ce que je fais mal?

Merci pour toute aide,

Marque

Avez-vous essayé SaveChanges() avant if(!userManager.IsInRole("marktest","Admin"))?
Hi - oui, j'ai ajouté context.SaveChanges(); - juste avant cette ligne, mais il est encore déclenche une exception avec la même erreur. Merci, Marc
Est "marktest" de l'utilisateur enregistré dans une base de données?
Hi - oui, j'ai ajouté les captures d'écran à la question. Merci encore, Marque

OriginalL'auteur Mark | 2015-03-17