Ajuster CommandTimeout dans Dapper.NET?

.net c# dapper timeout

Question

J'essaie d'exécuter des sauvegardes SQL via une procédure stockée via Dapper (le reste de mon application utilise Dapper, alors je préfère conserver cette partie). Cela fonctionne très bien jusqu'à ce que CommandTimeout entre en jeu.

using (var c = SqlConnection(connstring))
{
    c.Open();
    var p = new DynamicParameters();
    // fill out p

    c.Execute("xp_backup_database", p, commandType: CommandType.StoredProcedure);
}

Le seul paramètre CommandTimeout que je connaisse est dans SqlCommand. Y a-t-il un moyen de définir ceci via Dapper?

Réponse acceptée

Oui, il existe plusieurs versions de la fonction Execute. Un (ou plusieurs) d'entre eux contient les paramètres commandTimeout:

public static int Execute(this IDbConnection cnn, string sql, 
                dynamic param = null, IDbTransaction transaction = null, 
                            int? commandTimeout = null, CommandType? commandType = null)

Tiré de SqlMapper.cs


Réponse populaire

Exemple de question originale avec réponse acceptée ajouté, au cas où quelqu'un le veuille. (Timeout est défini sur 60 secondes):

using (var c = SqlConnection(connstring))
{
    c.Open();
    var p = new DynamicParameters();
    // fill out p

    c.Execute("xp_backup_database", p, commandTimeout: 60, 
                                       commandType: CommandType.StoredProcedure);
}



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