dapper.net에서 저장 프로 시저 출력을 List로 변환

c# dapper

문제

Dapper.net을 처음 사용하고 Dapper.Net을 사용하여 저장 프로 시저를 실행하려고합니다.

저장 프로 시저의 출력과 관련된 모델 클래스 StoreProcedureResult 있습니다.

public StoredProcedureResult
{
    public string Name { get; set; }
    public string Address { get; set; }
    public string PhoneNumber { get; set; }
}

conn.Query(SP_name, Param(s), Type). 

모델의 출력은 동적으로 검색됩니다.

실행 후 나는 다음을 얻는다.

{{Dapper,Name='Pradeep',Address='UK',PhoneNumber='+4478923984'}}
{{Dapper,Name='Jack',Address='USA',PhoneNumber='+447242344234}}
{{Dapper,Name='Ram',Address='UK',PhoneNumber='+447892423484'}}

List<StoredProcedureResult> 구조에서 동적 출력을 변환해야합니다.

검색 횟수가 거의 부족하여이 코드를 발견했습니다.

conn.Query<*Model_name*>(SP_name, Param(s), Type). 

불행히도 이것은 적절한 수의 행을 반환하지만 행은 비어 있습니다. 어떻게 출력을 List<StoredProcedureResult> 로 변환 할 수 있습니까?

감사

수락 된 답변

쿼리를 호출 할 때 데이터의 반환 형식을 지정해야합니다. 여기서 < 모델 이름 >은 예상되는 반환 유형을 입력하는 곳입니다. 귀하의 예제에서 당신은 dapper의 내부 동적 dapperrow 유형으로 데이터를 다시 얻고 있습니다.

        // Gets results in dapper's DapperRow type. This is what you're getting now. 
        var results = _connection.Query("SP_name", commandType: CommandType.StoredProcedure);

아래 예제는 네가 실제로 원하는 네임드 타입의 결과를 반환하는 것을 보여줍니다.

        //Gets results in your type. Note we tell dapper we want it turned into StoredProcedureResults.
        List<StoredProcedureResult> castResults;
        castResults = _connection.Query<StoredProcedureResult>("SP_name", commandType: CommandType.StoredProcedure).ToList();


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