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



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow