항상 dapper를 사용할 때 테이블의 첫 번째 행 가져 오기

dapper

문제

내가 dapper를 사용할 때 특정 ID를 전달하려고 시도하지만 여전히 테이블의 첫 번째 행을 가져 오는 동안 테이블의 첫 번째 행을 계속 가져오고 있습니다. 나는 그것이 무엇을 놓치고 있는가? 나는 SQL 프로파일 러를 검사하여 ID가 ​​저장 프로 시저로 보내지지 않고 모든 데이터가 returend 인 것을 발견했습니다. 나는 많은 것을 지쳤다. 그러나 id가 왜 통과되지 않고 있는지에 관해 모른다.

public Setting GetConfigurationPerIdy(string id)
{
    return Run(conn => conn.Query<Setting>("spProc_GetSettingById",
        new {id}).FirstOrDefault());
}

전문가 답변

일반 ADO.NET과 마찬가지로 기본 가정은 CommandType.CommandText . 실행중인 명령이 저장 프로 시저 인 경우이를 알려야합니다 .

..., new {id}, commandType: CommandType.StoredProcedure

그렇지 않으면 기능적으로 다음과 같습니다.

declare @id int = 7; -- or whatever
exec spProc_GetSettingById; -- note that we didn't add the parameter

인기 답변

코드에서 FirstOrDefault () 를 제거하십시오. 테이블의 첫 번째 행만 반환하므로 다른 값은 null입니다.



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