사전을 변환하는 방법 <dynamic, dynamic> 사전에 <string, string> Colllection.ToDictionary ()를 사용하여

c# c#-4.0 dapper expando expandoobject

문제

Dapper를 사용하여 사전에 2 열 결과 집합을 가져옵니다. 나는 intellisense가 나를 보여줍니다 .ToDictionary () 결과 집합을 가리키고 있지만 나는 그것을 사용하기 때문에 얻을 수 없다는 사실을 사용하는 동적 속성 / expandoObject

Dictionary<string, string > rowsFromTableDict = new Dictionary<string, string>();
using (var connection = new SqlConnection(ConnectionString))
{
   connection.Open();
   var results =  connection.Query
                  ("SELECT col1 AS StudentID, col2 AS Studentname 
                    FROM Student order by StudentID");
    if (results != null)
    {
    //how to eliminate below foreach using results.ToDictionary()
    //Note that this is results<dynamic, dynamic>
         foreach (var row in results)
         {
              rowsFromTableDict.Add(row.StudentID, row.StudentName);
         }
         return rowsFromTableDict;
     }
}

고맙습니다

수락 된 답변

시험:

results.ToDictionary(row => (string)row.StudentID, row => (string)row.StudentName);

일단 당신이 동적 객체를 가지면, 당신이 그것과 함께하는 모든 일들과 해당 속성들과 메소드들은 동적 유형입니다. 동적이 아닌 유형으로 다시 가져 오려면 명시 적 형변환을 정의해야합니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.