Dapper.NET
Paramètres dynamiques
Recherche…
Utilisation de base
Il n'est pas toujours possible de regrouper soigneusement tous les paramètres dans un seul objet / appel. Pour vous aider avec des scénarios plus complexes, dapper permet au paramètre param
d'être une instance IDynamicParameters
. Si vous faites cela, votre méthode AddParameters
personnalisée est appelée au moment approprié et a transmis la commande à ajouter. Dans la plupart des cas, cependant, il suffit d'utiliser le type DynamicParameters
préexistant:
var p = new DynamicParameters(new { a = 1, b = 2 });
p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output);
connection.Execute(@"set @c = @a + @b", p);
int updatedValue = p.Get<int>("@c");
Ceci montre:
- (optionnel) population d'un objet existant
- (facultatif) ajouter des paramètres supplémentaires à la volée
- passer les paramètres à la commande
- récupérer toute valeur mise à jour une fois la commande terminée
Notez qu'en raison de la façon dont les protocoles de SGBDR fonctionnent, il est généralement fiable pour obtenir des valeurs de paramètres mis à jour après des données ( à partir d' une Query
opération ou QueryMultiple`) a été entièrement consommée (par exemple, sur SQL Server, les valeurs des paramètres mises à jour sont à la fin du flux TDS).
Paramètres dynamiques dans Dapper
connection.Execute(@"some Query with @a,@b,@c", new {a=somevalueOfa,b=somevalueOfb,c=somevalueOfc});
Utiliser un objet modèle
Vous pouvez utiliser une instance d'objet pour former vos paramètres
public class SearchParameters {
public string SearchString { get; set; }
public int Page { get; set; }
}
var template= new SearchParameters {
SearchString = "Dapper",
Page = 1
};
var p = new DynamicParameters(template);
Vous pouvez également utiliser un objet anonyme ou un Dictionary