C # Identity UserManager CreateAsync puis FindByEmailAsync renvoie l'utilisateur avec l'ID = 0

asp.net-identity-2 dapper dapper-extensions sqlconnection

Question

Identité avec Dapper.

Mon utilisateur dans mon identité est de type IUser <int>

Quand un utilisateur s'inscrit, je crée un utilisateur dans mon AccountController:

S'inscrire POST:

if (ModelState.IsValid)
{
    user = new MySiteUserRecord
    {
        UserName = model.UserName,
        AccessFailedCount = 0,
        ApplicationName = "Portal",
        Description = string.Empty,
        PhoneNumber = model.PhoneNumber ?? string.Empty,
        Email = model.Email
    };
    var result = await UserManager.CreateAsync(user, model.Password);
    if (result.Succeeded)
    {
       ...

En cas de succès, je dois obtenir le nouvel enregistrement utilisateur, car la "nouvelle" classe d'utilisateurs, présentée ci-dessus, ne savait pas encore quelle était son identité.

       user = await UserManager.FindByNameAsync(model.UserName);

Lorsque je regarde cet enregistrement d'utilisateur trouvé, user.Id = 0. Mais si je regarde la base de données, la ligne de cet utilisateur nouvellement créé est le prochain ID, par exemple, 9 Même si je fais une requête directe de base de données, que la fonction FindByNameAsync du UserManager, l’ID renvoyé est toujours 0.

Je suis vraiment perplexe - j'ai probablement manqué quelque chose ...

Que dois-je faire pour obtenir l'enregistrement utilisateur avec l'ID de base de données attribué?

EDIT: La fonction Mon utilisateur est:

    Task<MySiteUserRecord> IUserStore<MySiteUserRecord, int>.FindByNameAsync(string userName)
    {
        var predicate = Predicates.Field<MySiteUserRecord>(f => f.UserName, Operator.Eq, userName);
        return Task.Factory.StartNew(() => _sqlConn.GetList<MySiteUserRecord>(predicate).FirstOrDefault());
    }

Réponse acceptée

Une classe de mappeur pour ma classe d'utilisateurs a spécifiquement demandé à DapperExtensions d'ignorer mon champ Id. Soyez prudent lorsque vous utilisez d'autres extensions Dapper et devez étudier leur interaction avec votre système.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi