Dapper - SQL에서 Object 로의 암시 적 캐스팅 (문자열에서 int로 변환)

c# dapper

문제

나는 더 이상 사용하고 db에서 int로 문자열 값을 캐스팅하는 데 문제가 있습니다. 아무도 이것을 허용하도록 TypeMap을 오버라이드 했습니까?

어떤 제안이라도 좋을 것입니다.

수락 된 답변

Dapper는 맵핑되는 유형에 대해 까다 롭습니다. 이것은 나중에 팝업되는 모든 종류의 불쾌한 오류로부터 당신을 보호합니다.

예를 들어, db는 다음을 리턴 할 수 있습니다.

  • 010hello
  • 10a10
  • 374837483748374837483748374834784378437438743874384738473

이러한 종류의 항목을 Int32 에 매핑하기위한 명확한 조치 과정이 없습니다.

즉, IL 생성을 변경하지 않아도되는 dapper를 사용할 수있는 두 가지 전략이 있습니다.

옵션 1 : 그림자 속성

cnn.Query<Bar>("select cast(ageString as int) Age from TableWithString");

옵션 2, SQL에서 형변환

cnn.Query<Bar>("select cast(ageString as int) Age from TableWithString");

Dapper에서 매핑 기능을 확장 할 수있는 확실한 방법은 없습니다. 그렇게하면 시간이 지남에 따라 추가하는 모든 수정 사항을 로컬 복사본에 병합해야 할 필요가 없습니다.




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