Et si vous n'avez pas besoin d'un paramètre pour interroger Dapper?

dapper

Question

J'ai une requête qui fait un compte / groupe par où je n'ai pas besoin d'un paramètre (il n'y a pas de clause where).

Quelle est la syntaxe pour exécuter une requête sans paramètre avec dapper?

var _results = _conn.Query<strongType>("Select Count(columnA) as aCount, ColumnB, ColumnC from mytable group by ColumnB, ColumnC");

ne marche pas.

Je l'ai essayé de différentes manières, mais je continue à obtenir "ArgumentNullException n'était pas géré par le code utilisateur".

J'ai essayé de le comprendre moi-même, j'ai cherché partout et j'ai abandonné. Merci d'avance.

Edit: Ci-dessous, la ligne de code de SqlMapper.cs qui génère l'erreur. C'est la ligne 1334

il.Emit(OpCodes.Newobj, typeof(T).GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Type.EmptyTypes, null));

Les détails de l'erreur: La valeur ne peut pas être nulle. Nom du paramètre: con

Réponse populaire

Mapper un seul résultat fonctionne parfaitement:

var a = cnn.Query<int>("select 1").Single()
// a is 1

Vous pouvez rencontrer des problèmes si votre requête ne renvoie aucun résultat, par exemple:

select count(Id) from 
(
select top 0 1 as Id, 2 as Title
) as X
group by Title

retourne 0 résultat, donc, faire un Single sur un jeu de résultats vide ne fonctionnera pas.




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