2011-03-31 7 views
1

열거 형에 드롭 다운 목록이 바인딩되어 있고 선택한 값을 가져와 int가 필요한 데이터베이스 레코드를 업데이트하는 경우 게으름 또는 무시로 간주 될 수 있습니까? 내가 enum 값을 먼저 캐스팅하지 않는다면 enum을 갖는 지점은 무엇입니까?enum 캐스팅을 건너 뛰는 경우

아마도 내가 레거시 코드로 작업하고 있으며 각 개체를 모델링하기 위해 클래스를 사용하지 않고 단순히 UI에서 직접 db의 레코드를 업데이트하고 있다고 언급해야합니다. 왜 이것이 나쁜지 말해 줄 필요가 없습니다.

public enum Schedule 
{ 
     None = 0, 
     Hourly = 1, 
     Daily = 2, 
     Weekly = 3, 
     Monthly = 4, 
} 
+0

이것은 테스트를 통해 쉽게 알아낼 수 있습니다. – Andrey

+0

무엇? 개념적이다. 너 어떻게 그걸 시험해? 내 질문을 다시 읽어주십시오. – Joe

답변

1

나는 게으르지 않습니다. enum의 이름은 Google 혜택입니다. 데이터베이스는 그 가치에 대해서만 신경을 쓰고 그 가치는 당신이주는 것입니다.

+0

대답이 잘못되었습니다. 중요한 것은 사용하는 DB 액세스 API입니다. – Andrey

+0

@Andrey 당신은 맞을지도 모르지만 당신은 물어 본 것의 범위를 벗어나는 것을 추정하고 있습니다. 그 사람마다 아무 잘못도 없지만 내 대답이 부정확하지 않습니다. – Sorax

3

짧은 대답; 의존한다.

길게 대답; 현재의 DAO가 어떻게 열거 형을 유지하고 검색하는지에 따라 다릅니다. NHibernate는 기본적으로 열거 형의 ToString()을 유지하려고 시도합니다. 실제 DB에서는 숫자 값보다 훨씬 더 읽기 쉬우므로 숫자로 유지하려고한다고 구체적으로 명시해야합니다.

ADO.NET은 정량화 된 Enum 폼에서 SqlParameter에 전달하면 해당 백킹 숫자로 enum 값을 유지합니다.

+0

정확하고 올바른 답변입니다. – Andrey

관련 문제