133 votes

Comment utiliser les transactions avec dapper.net ?

Je voudrais exécuter plusieurs instructions d'insertion sur plusieurs tables. J'utilise dapper.net. Je ne vois pas de moyen de gérer les transactions avec dapper.net.

Veuillez partager vos idées sur la manière d'utiliser les transactions avec dapper.net.

5voto

mishrsud Points 666

La réponse de Daniel a fonctionné comme prévu pour moi. Pour être complet, voici un extrait qui démontre le commit et le rollback en utilisant un scope de transaction et un dapper :

using System.Transactions;
    // _sqlConnection has been opened elsewhere in preceeding code 
    using (var transactionScope = new TransactionScope())
    {
        try
        {
            long result = _sqlConnection.ExecuteScalar<long>(sqlString, new {Param1 = 1, Param2 = "string"});

            transactionScope.Complete();
        }
        catch (Exception exception)
        {
            // Logger initialized elsewhere in code
            _logger.Error(exception, $"Error encountered whilst executing  SQL: {sqlString}, Message: {exception.Message}")

            // re-throw to let the caller know
            throw;
        }
    } // This is where Dispose is called

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X