Dapper handling a retourné un jeu de résultats vide

dapper datareader

Question

Nous utilisons Dapper pour cartographier nos données SQL et jusqu'à présent, cela a très bien fonctionné. J'ai un cas où nous faisons quelque chose de semblable à:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).Single();

Cela fonctionne très bien tant que la procédure stockée que j'appelle renvoie des données. Il arrive que la procédure stockée ne renvoie pas de résultat et renvoie une erreur dans un paramètre de sortie. Cela semble causer un problème dans Dapper, car Dapper lance l'erreur:

"Lorsque vous utilisez les API multi-mapping, assurez-vous de définir le paramètre splitOn si vous avez des clés autres que Id"

Existe-t-il un moyen d'écrire la requête afin qu'elle puisse gérer correctement le cas où un résultat vide est renvoyé ou s'agit-il d'une limitation de Dapper?

Réponse populaire

SingleOrDefault() est votre ami ici

Essaye ça:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).SingleOrDefault();
if (someObject != null)
{
  // operate on your results here
}
return someObject;

vous devrez également vous assurer que T est Nullable




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