mvc3 dapper模型中不存在映射

时间:2013-08-27 15:15:19

标签: asp.net-mvc-3 dapper tolist

我在dapper中进行一些编码,我得到错误从对象类型到已知托管提供者本机类型没有映射 myfriends var上出现此错误小巧玲珑。我正在使用dapper从表中获取INT值列表,然后将它们与另一个进行比较..这是给我错误的代码

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

但是,如果我使用实体,一切正常,例如下面的代码可以工作..

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

这里可能会发生什么......

1 个答案:

答案 0 :(得分:1)

myfriendsList<friend>。然后将其作为查询参数传递,即

new {friendship=myfriends}

使用:

AND profileID=@friendship

现在...... @friendship是什么?它应该如何传递到List<friend>这里?什么甚至意味着传递一个对象列表(每个对象可能有多个属性)作为单个参数? (注意:出于这个问题的目的,我忽略了表值参数)

那么:你期待多少myfriends? 0? 1?任何数字?例如,这可能是:

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

或者也许:

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