Changer la valeur de ParamInfo après l'ajout à DynamicParameters?

dapper

Question

J'appelle un proc stocké dans une boucle foreach et je voudrais changer la valeur de l'un des paramètres à chaque itération. Actuellement, il ne semble y avoir aucun moyen d'accéder aux paramètres une fois qu'ils ont été ajoutés à DynamicParameters bien que, en lisant la source, je constate que DynamicParameters conserve un dictionnaire interne. Une raison pour laquelle ce n'est pas public ou s'il y a un autre moyen d'obtenir au ParamInfos de changer les valeurs?

Mettre à jour

Ce que j'ai actuellement:

foreach ( var fooID in fooIDs )
{
    var dynamicParameters = new DynamicParameters();
    dynamicParameters.Add( ParameterNames.BarID, barID );
    dynamicParameters.Add( ParameterNames.FooID, fooID);

    connection.Execute( ProcNames.MyProc, dynamicParameters, commandType:CommandType.StoredProcedure );
}

Réponse populaire

Il n'y a pas de raison réelle pour laquelle DynamicParameters est si secret sur ce qu'il fait, la classe ParamInfo pourrait être exposée et je serais heureux de fournir des propriétés et / ou méthodes d'itération / modification correctes. Si vous sentez que vous souhaitez intervenir, veuillez soumettre un patch.

En attendant, vous pouvez simplement implémenter IDynamicParameters l'interface triviale que nous utilisons pour envoyer cette commande à la commande sous-jacente de votre application. Vous pouvez utiliser DynamicParameters comme point de départ.




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