Dapper를 사용하여 Enum 속성 채우기

c# dapper enums

문제

Dapper의 Query () 함수를 사용할 때, 열거 된 값인 속성을 가진 클래스를 채우려고합니다. 내 데이터베이스에서이 열은 바이트로 저장됩니다. 그러나 클래스에서 열거 형입니다. 이전 ADO.NET 접근 방식에서 독자 루프 중에 변환합니다.

myClass = conn.Query<MyClassType>("SELECT ... ")

Dapper를 사용할 때이 변환을 수행하는 방법을 알 수 없습니다. 예를 들어, 내가 뭔가를 할 때

myClass = conn.Query<MyClassType>("SELECT ... ")

유형에 오류가 있습니다.

myClass = conn.Query<MyClassType>("SELECT ... ")

Daum의 Query ()를 사용하여 enum 유형 인 속성을 포함하는 클래스를 채우는 방법이 있습니까?

수락 된 답변

물론 - 귀하의 enum이 동의하는 한, 즉

SELECT ..., CAST(x.myEnum as int) as myEnum, ...

그러면 모든 것이 자동으로 작동합니다.

(이 제한은 의도적으로 설계된 것이며 LINQ-to-SQL과 공유됩니다)

또는 enum이 : int 이고 변경할 수없는 경우 SQL :

SELECT ..., CAST(x.myEnum as int) as myEnum, ...

또는 마지막으로 dynamic API를 사용하십시오.

SELECT ..., CAST(x.myEnum as int) as myEnum, ...

첫 번째는 필자가 선호하는 객체로, 모든 코드에서 byte 데이터 유형 제한을 적용합니다. 이는 IMO에서 좋은 점입니다.




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