Fehler beim Einfügen mit SqlMapperExtension Dapper

c# dapper dapper-extensions insert

Frage

Derzeit versuche ich mit Dapper zu spielen, ich versuche, Werte in die db wie folgt einzufügen

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

Der Fehler, den ich bekomme, ist

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. 

Ich habe diesen Fehler gegoogelt, aber ich habe die Antworten falsch verstanden.

Beliebte Antwort

Von der Fehlermeldung nehme ich an, dass Sie eine Transaktion gestartet haben, die weder festgeschrieben noch zurückgesetzt wurde. Der eigentliche Grund für diese Fehlermeldung ist an anderer Stelle.

Ich empfehle Ihnen, Anforderungen in Context.ReturnDatabaseConnection() zu protokollieren und zu verfolgen, welche Anforderungen diesem Fehler vorausgehen.

Außerdem rate ich Ihnen, in Ihrem Code nach allen Transaktionen zu suchen und zu prüfen, ob sie korrekt ausgeführt wurden (Commit / Rollback).



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum