Comment est le Get méthode utilisée avec DynamicParameters?

c# dapper

Question

J'essaie d'exécuter un test pour voir si j'ai chargé correctement un objet DynamicParameters . Cependant, je ne peux pas comprendre ce que le type est que je devrais utiliser. J'obtiens des exceptions lorsque j'essaie d'utiliser les types C # /. NET (int, string, etc.). J'ai essayé d'utiliser SqlDbType, mais cela n'a pas fonctionné. J'ai regardé la source et je vois que la valeur est stockée sous la forme d'un IDbDataParameter , puis IDbDataParameter dans le type. Évidemment, les types que j'essaie ne lancent pas. Les données avec int je teste sont int . Comment puis-je obtenir les valeurs?

var dbParams = new DynamicParameters();
dbParams.Add( "Field1", 1 );
var value = dbParams.Get<int>( "Field1" ); // throws an exception

Réponse d'expert

Le code n'attendait que Get<T> pour être utilisé après l'appel du SQL, afin d'obtenir la valeur mise à jour des paramètres ref , out et return . Par conséquent, il a tenté de dé-référencer quelque chose qui n'existait pas encore . Cela sera corrigé dans la prochaine version ( il est maintenant fixé dans le coffre ).




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