Dapper로 저장 프로 시저에서 필드 이름 가져 오기

.net dapper

문제

다음과 같이 Dapper를 사용하여 저장 프로 시저를 실행합니다.

var sprocResult = conn.Query("TestSproc", new {clientID = 2}, commandType: CommandType.StoredProcedure).ToList();

결과를 열거하고 값을 나열 할 수 있습니다. 내가 할 수 있어야 할 일은 또한 sproc에서 돌아 오는 필드 이름을 열거합니다. 디자인 타임에이 필드 이름을 알 수 없습니다.

미리 감사드립니다.

수락 된 답변

귀하의 예제에 따라 dynamic API ( Query(...) 대신 Query(...) Query<T>(...) )를 사용할 때 각 행은 또한 IDictionary<string,object> 구현 IDictionary<string,object> . 그래서 기본적으로:

foreach(IDictionary<string,object> row in sprocResult)
{
    var colNames = row.Keys;
    //...
}

인기 답변

쿼리가 행을 반환하지 않을 경우 Query().First().Keys 가 작동하지 않습니다. 이 경우 ExecuteReader().GetName(i) 사용할 수 있습니다.



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