DataSet을 사용하여 C# 프로그램을 SQL 데이터베이스에 연결하고 있습니다. 열 중 하나를 열거 형으로 만들고 싶습니다. 그리고이 열을 열거 형으로 사용하고 싶습니다. 어떻게해야합니까?DataSet의 열거 형
답변
모든 사람의 버블을 버스트하는 것이 아니라 강력한 형식의 데이터 집합을 사용하여 정수를 Enum에 쉽게 매핑 할 수 있습니다. 나는 항상 그렇게한다. 전체 내용을 여기에 입력하는 대신 자세한 내용을 설명하는 entry on my Blog을 작성했습니다.
저장소 계층 위에있는 ApplicationService 계층을 사용하는 것이 좋습니다. 그런 다음 ApplicationService 클래스에서이 클래스의 적절한 이름을 생각하면 저장소 계층에서 반환되는 데이터를 POCO 객체의 적절한 enum 값으로 변환 할 수 있습니다.
strongly typed dataset을 사용해 볼 수도 있습니다.
이것이 열거 형에 어떻게 도움이됩니까? –
이 구조를 사용하여 열 데이터 유형 중 하나를 사용자 정의 열거 유형에 변경하거나 추가 할 수 있습니다. 만큼 그것을 채우는 숫자 db 값이 열거 형의 범위에있는 한, 나는 그것이 작동 수 있다고 생각합니다. 부분 클래스를 추가하거나 생성 된 클래스를 수정해야합니다. – James
이 항목이 제대로 작동한다고 가정해도 유지 관리 문제입니다. 이제 해당 열의 유효성에 대한 여러 정의가 생겼습니다. 또한, ADO.NET이 암시 적으로 코드에서 수행 할 수없는 캐스트를 수행한다는 사실을 알면 놀랄 것입니다. MyEnum e = 1; 컴파일되지 않습니다. –
기술적으로 할 수 없습니다. 열거 형은 정적 유형이며, 컴파일시에 모든 값을 알고있을 때 사용하도록 설계되었습니다. 몇 가지 해결 방법이 있지만이 방법을 사용하지 않는 것이 좋습니다.
수정할 수없는 데이터 세트를 살펴보면 Enum의 장점 대부분을 얻을 수 있으며 즉시 생성 될 수 있습니다.
데이터를 열거 형으로 저장할 수는 없지만 데이터베이스 열의 데이터가 정수 유형이면 데이터를 멋진 필터로 사용할 수 있습니다. 그것은 당신이 겪은 일이라면 완전히 다른 질문입니다. MSDN page으로 이동하여 Enum 's에서 읽으십시오.
탁신, 그게 내가 원하는거야. – svick
+1 개념 증명을 잘 해내 고 있습니다. 나는 입력 된 데이터 세트로 가능하다는 것을 알았다. 이 방법을 사용하면 xsd가 유형이 지정된 데이터 집합 디자이너에 의해 공격을 당하기 때문에 데이터 집합을 변경할 때마다 xsd 파일에서 변경을 다시 수행하지 않아도됩니까? – James
예, 문제가있는 xsd가 손상됩니다. DataSet에서 사용자 정의 enum 유형을 사용하기를 원하며 유지 관리가 최소화됩니다. 그러나 나는 정수로 앞뒤로 던지기보다는 열거 형을 직접 다룰 것을 선호한다. 우리가이 작업을 수행하는 곳은 소수에 불과하며 그 데이터 세트는 거의 변경되지 않으므로 그 영향은 미미합니다.( – Josh