Je suis nouveau à dapper je reçois une erreur quand je récupère des données de la table jointe
var qry = @"SELECT Cities.Id,
Cities.Name,
Cities.Sort,
Countries.Name
FROM[dbo].[Cities]
JOIN Countries ON Countries.Id = Cities.CountryId";
var result = con.Query<Cities, Countries>(qry);
c'est le message d'erreur
'SqlConnection' ne contient pas de définition de 'Query' et aucune méthode d'extension 'Query' acceptant un premier argument de type 'SqlConnection' n'a été trouvée (manque-t-il une directive using ou une référence d'assembly?)
L'erreur est provoquée par un appel non valide - il n'y a pas de surcharge qui accepte deux arguments génériques.
Bien que Dapper prenne en charge le multimapping, l'appel nécessite en réalité trois arguments génériques, TFirst
, TSecond
et TReturn
(où TReturn
peut être l'un des deux ou un autre).
https://github.com/StackExchange/dapper-dot-net#multi-mapping
Un exemple d'appel valide des documents
var data = connection.Query<Post, User, Post>(sql, (post, user) => { post.Owner = user; return post;});
Un appel invalide avec seulement deux arguments génériques génère exactement le message d'erreur que vous obtenez.
Je suppose que vous vouliez soit la 3ème surcharge qui accepte un seul argument générique
Query<TResult>( string sql, Type[] types, Func<object[], TResult> map, ... );
ou le 4ème qui accepte trois
Query<TFirst, TSecond, TResult>( string sql, Func<TFirst, TSecond, TResult> map, ... );
Dans les deux cas, vous avez toujours besoin d'une fonction de carte.