Dapper에 SqlParameter 보내기

c# dapper

문제

나는 내 프로젝트에서 Dapper 를 사용하고있다. 나는 SqlParameters의 목록을 가지고 있고 그것을 Dapper에게 보내고 싶다. 하지만 Dapper에는 객체 (이름, 값)가 필요합니다. 어떻게 SqlParameter를 개체로 변환 할 수 있습니까? 나는 이것이 작동하지 않는다는 것을 안다.

conn.Query<TModel>(sql, parameters.Select(p => new {p.ParameterName=p.Value}))

어떤 제안?

수락 된 답변

다른 것을 찾으면서 우연히 발견되었지만 미래에 다른 사람들을 도울 수있는 통찰력을 제공 할 수 있습니다.

Dapper.DynamicParameters 객체를 사용하여 합법적으로 Dapper Queries에 전달할 수있는 항목을 추가 할 수 있습니다. 즉, (직접 코드화 된)

var args = new DynamicParameters(new {});
parameters.ForEach(p => args.Add(p.ParameterName, p.Value));
conn.Query<TModel>(sql, args );

HTH


인기 답변

또한 입력 매개 변수의 방향, 데이터 유형,

var parameters = new DynamicParameters();
            parameters.Add(name: "@UserId", value: obj.DriverId, dbType: DbType.String, direction: ParameterDirection.Input);
            parameters.Add(name: "@Password", value: obj.DPassword, dbType: DbType.String, direction: ParameterDirection.Input);
            parameters.Add(name: "@IMEINo", value: obj.IMEINo, dbType: DbType.String, direction: ParameterDirection.Input);
            return DatabaseHub.Query<object>(storedProcedureName: @"[dbo].[sp_m_GetAppLoginCheckData]", parameters: parameters, dbName: AMSDB).FirstOrDefault();


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