Error al insertar usando SqlMapperExtension Dapper

c# dapper dapper-extensions insert

Pregunta

Actualmente estoy jugando con Dapper y estoy tratando de insertar valores en el db de la siguiente manera

using (var sqlCon = new SqlConnection(Context.ReturnDatabaseConnection()))
{
    sqlCon.Open();

    try
    {
        var emailExists = sqlCon.Query<UserProfile>(@"SELECT UserId FROM User_Profile WHERE EmailAddress = @EmailAddress",
                          new { EmailAddress = userRegister.EmailAddress.Trim() }).FirstOrDefault();

        if (emailExists == null) // No profile exists with the email passed in, so insert the new user.
        {
            userProfile.UniqueId = Guid.NewGuid();
            userProfile.Firstname = userRegister.Firstname;
            userProfile.Surname = userRegister.Surname;
            userProfile.EmailAddress = userRegister.EmailAddress;
            userProfile.Username = CreateUsername(userRegister.Firstname);
            userProfile.Password = EncryptPassword(userRegister.Password);
            userProfile.AcceptedTerms = true;
            userProfile.AcceptedTermsDate = System.DateTime.Now;
            userProfile.AccountActive = true;
            userProfile.CurrentlyOnline = true;
            userProfile.ClosedAccountDate = null;
            userProfile.JoinedDate = System.DateTime.Now;

            userProfile.UserId = SqlMapperExtensions.Insert(sqlCon, userProfile); // Error on this line

            Registration.SendWelcomeEmail(userRegister.EmailAddress, userRegister.Firstname); // Send welcome email to new user.
        }
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
    }
    finally
    {
        sqlCon.Close();
    }
}

El error que obtengo es

ExecuteNonQuery requires the command to have a transaction when the connection 
assigned to the command is in a pending local transaction.  The Transaction 
property of the command has not been initialized. 

He buscado este error en Google, pero he entendido mal las respuestas proporcionadas.

Respuesta popular

A partir del mensaje de error supongo que ha iniciado una transacción que no se ha comprometido ni revertido. La causa real de este mensaje de error está en otra parte.

Le sugiero que registre las solicitudes en Context.ReturnDatabaseConnection() y Context.ReturnDatabaseConnection() qué solicitudes preceden a este error.

También le aconsejo que busque en su código todas las transacciones y verifique si están correctamente completadas (commit / rollback).



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué