Identity C # UserManager CreateAsync, quindi FindByEmailAsync restituisce Utente con Id = 0

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

Domanda

Identità con Dapper.

Il mio utente nella mia identità è di tipo IUser <int>

Quando un utente si registra, creo un utente nel mio AccountController:

Registro 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)
    {
       ...

In caso di successo, ho bisogno di ottenere il record utente appena creato, perché la 'nuova' classe utente, presente sopra, non sapeva quale sia il suo ID ancora ...

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

Quando guardo questo record utente trovato, user.Id = 0. Ma se guardo il DB, la riga per questo utente appena creato è il prossimo Id, per esempio, 9 Anche se faccio una query Db diretta, piuttosto che utilizzare la funzione FindByNameAsync di UserManager, l'ID restituito è sempre 0.

Sono davvero perplesso - probabilmente mi sono perso qualcosa ...

Cosa devo fare per ottenere il record dell'utente con l'ID DB assegnato?

MODIFICA: la funzione Trova utente è:

    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());
    }

Risposta accettata

Una classe mapper per la mia classe utente ha specificatamente detto a DapperExtensions di ignorare il mio campo ID. Devi stare attento quando usi altre estensioni di Dapper e devi indagare su come interagiscono con il tuo sistema.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché