mvc3 dapper Aucune correspondance n'existe à partir du modèle

asp.net-mvc-3 dapper tolist

Question

Je fais du codage dans dapper et j'obtiens l'erreur. Aucun mappage n'existe du type d'objet à un type natif de fournisseur géré connu. Cette erreur se produit sur la variable myfriends pour dapper. J'utilise dapper pour obtenir une liste de valeurs INT à partir d'une table, puis en les comparant à une autre .. c'est le code qui me donne cette erreur

   int myid = Convert.ToInt32(User.Identity.Name);
 // The var myfriend is giving me that error above
            var myfriends = sqlConnection.Query<friend>("Select otherfriendsID from friends where profileID=@myidd", new { myidd = myid }).ToList();

            var profiles = sqlConnection.Query<profile>("Select top 40 * from profiles where photo is not null AND profileID=@friendship order by profileID desc", new {friendship=myfriends}).ToList();

Cependant, si j'utilise Entité, tout fonctionne bien, par exemple ce code ci-dessous fonctionne.

            var myfriends = (from s in db.friends where s.profileID == myid select s.otherfriendsID).ToList();

Que pourrait-il se passer ici ..

Réponse acceptée

myfriends est une List<friend> . Vous transmettez ensuite cela comme paramètre de requête, c.-à-d.

new {friendship=myfriends}

avec:

AND profileID=@friendship

Maintenant, qu'est-ce que @friendship ? Comment devrait-il passer dans une List<friend> ici? Qu'est-ce que cela signifie même de transmettre une liste d'objets (chacun d'entre eux pouvant avoir plusieurs propriétés) en tant que paramètre unique? (note: j'ignore les paramètres de table pour les besoins de cette question)

Alors, combien de myfriends -vous? 0? 1? n'importe quel chiffre? Cela pourrait être, par exemple:

var profileIds = myfriends.Select(x => x.ProfileId);
...
new {profileIds}
...
AND profileID in @profileIds

ou peut-être:

new {profileId = myfriends.Single().ProfileId}
...
AND profileID = @profileId



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