DAPPER API multi-mapping splitOn param Erreur - Je n'utilise pas MultiMapping

.net c# dapper sql

Question

J'ai un projet où j'interagis avec de nombreux processus stockés. Il n'y a pas de sélections SQL nu. J'utilise Dapper. Nous n'essayons pas d'utiliser les fonctionnalités MultiMapping. J'essaie de comprendre pourquoi ce seul procédé renverrait cette erreur? Que dois-je vérifier? Que devrais-je rechercher?

Erreur: Lorsque vous utilisez les API de mappage multiple, veillez à définir le paramètre splitOn si vous avez des clés autres que Id \ r \ nNom du paramètre: splitOn

Réponse acceptée

Vous devez utiliser Execute () au lieu de Query (), car votre SP ne renvoie aucun enregistrement. Dapper suppose que vous essayez d’obtenir des données, mappant ainsi les résultats manquants à votre classe de modèle.


Réponse populaire

J'ai rencontré ce problème aujourd'hui et je ne comprenais pas pourquoi j'obtenais le message d'erreur MultiMapping lorsque je n'essayais pas de mapper plusieurs cartes en premier lieu. Mon code utilise la requête de Dapper au lieu de Execute, car le sproc renvoie effectivement certaines lignes.

Il se trouve que dans ma procédure stockée, qui prend un seul paramètre varchar, si le paramètre est passé comme NULL, le résultat est simplement la valeur entière 0. Si elle est passée sous forme de chaîne vide, j'obtiens un résultat vide en haut de la valeur de retour normale 0.

Parce que j'avais dit à Dapper d'utiliser Query<MyClass> , il regardait le retour simple 0 de la version null en tant que int, et non MyClass , et essayait de Multimap, d'où provient cette erreur multimap.

Pour résoudre ce problème, j'ai modifié ma procédure stockée pour convertir un paramètre nul en un paramètre de chaîne vide, garantissant ainsi un jeu de résultats vide au lieu de définir un ensemble de résultats, puis Dapper recommence à fonctionner.



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