Dapper를 사용하여 guid에 문자열 매핑

c# dapper orm sql

문제

Dapper를 사용하여 PostgreSQL 데이터베이스에 액세스해야하는로드 테스트 도구를 망치고 있습니다. 이 특정 버전의 PostgreSQL은 기본적으로 GUID를 지원하지 않으므로 GUID 값은 32 자 문자열로 저장됩니다. 값은 someGuid.ToString("N") 사용하여 문자열로 변환되며, new Guid(stringValueFromColumn) 사용하여 Guid로 다시 변환 할 수 있습니다.

제 질문은 Dapper에게 문자열을 읽고 Guids로 다시 변환 시키려면 어떻게해야합니까?

DbType 매핑을 수정하려고 시도했지만 작동하지 않습니다.

수락 된 답변

아마도 (dapper를 기다리지 않고) 이것을 수행하는 가장 간단한 방법은 두 번째 속성을 갖는 것입니다.

public Guid Foo {get;set;}

public string FooString {
    get { return Foo.ToString("N"); }
    set { Foo = new Guid(value); }
}

그리고 쿼리에서 FooString 별칭을 FooString 합니다.

물론 이것은 다음과 같은 질문을 던져줍니다. dapper가이 유형의 사적 속성을 지원해야합니까? 내가 말하는 것은 아마 : 아마.


인기 답변

이것은 오래된 질문이지만, Dapper가 개인 속성을 지원함에 따라 업데이트가 필요하다고 생각합니다. Marc은 그의 답변에서이 속성을 참조했습니다.

SELECT UserID AS UserIDString FROM....

그런 다음 SQL에서 ID 열에 별칭을 지정하여 실제 속성이 아닌 개인 속성에 매핑합니다.

SELECT UserID AS UserIDString FROM....



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