mvc3 dapper No mapping exists from model

asp.net-mvc-3 dapper tolist

Question

I am doing some coding in dapper and I get the error No mapping exists from object type to a known managed provider native type this error occurs on the myfriends var for dapper . I am using dapper to get a list of INT values from a table then comparing them against another.. this is the code that gives me that error

   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();

however if I use entity everything works fine for instance this code below works..

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

What could be going on here..

Accepted Answer

myfriends is a List<friend>. You then pass that in as a query parameter, i.e.

new {friendship=myfriends}

with:

AND profileID=@friendship

Now... what is @friendship ? How should it pass in a List<friend> here? What does that even mean to pass in a list of objects (each of which could have multiple properties) as a single parameter? (note: I'm ignoring table-valued-parameters for the purposes of this question)

So: how many myfriends do you expect? 0? 1? any number? This could be, for example:

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

or maybe:

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


Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why