데이터베이스에 문자열로 enum을 저장하십시오.

c# dapper enums orm

문제

나는 대퍼와 함께 실험하고있다. 열거 형 클래스가 있고 값은 데이터베이스에 문자열로 저장됩니다.

GenericEnumMapper를 사용하여 FluentNHibernate와 작동합니다.

Dapper와 동일한 작업을 수행 할 수 있습니까?

수락 된 답변

이것은 현재 내장되어 있지 않습니다. 여기에 제안 된 해결책이 있습니다 : http://code.google.com/p/dapper-dot-net/issues/detail?id=24 아직 결정하지 않은 해결책 . 나는 확장형 변환기의 아이디어를 좋아한다.

가장 확실한 방법은 그림자 속성을 정의하는 것입니다. 예 :

class MyType
{
   public MyEnum MyEnum {get; private set;}
   private string DBEnum { set { MyEnum = Convert(value);} }

   private MyEnum Convert(string val)
   {
     // TODO: Write me 
   } 
}

// cnn.Query<MyType>("select 'hello' as DBEnum")  <-- will set MyEnum

인기 답변

방금 시도한 샘플 코드에서 볼 수 있습니다. 열거 형을 기본 정수 값에 매핑 할 수 있지만 문자열 값에 매핑하려고하면 DataException 이 발생합니다.




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