mvc3 dapper 모델에서 매핑이 없습니다.

asp.net-mvc-3 dapper tolist

문제

내가 dapper에서 몇 가지 코딩을하고 있는데 오류가 발생합니다 개체 유형에서 알려진 관리되는 공급자 네이티브 형식으로 매핑이 존재하지 않습니다. 이 오류는 대용으로 myfriends var에서 발생합니다. 나는 테이블에서 INT 값의 목록을 얻고 다른 것을 비교하기 위해 dapper를 사용하고있다. 이것은 나에게 오류를주는 코드이다.

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

여기에 무슨 일이 벌어 질지 ..

수락 된 답변

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


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow