2009-06-23 2 views
6

DataSet을 사용하여 C# 프로그램을 SQL 데이터베이스에 연결하고 있습니다. 열 중 하나를 열거 형으로 만들고 싶습니다. 그리고이 열을 열거 형으로 사용하고 싶습니다. 어떻게해야합니까?DataSet의 열거 형

답변

8

모든 사람의 버블을 버스트하는 것이 아니라 강력한 형식의 데이터 집합을 사용하여 정수를 Enum에 쉽게 매핑 할 수 있습니다. 나는 항상 그렇게한다. 전체 내용을 여기에 입력하는 대신 자세한 내용을 설명하는 entry on my Blog을 작성했습니다.

+0

탁신, 그게 내가 원하는거야. – svick

+0

+1 개념 증명을 잘 해내 고 있습니다. 나는 입력 된 데이터 세트로 가능하다는 것을 알았다. 이 방법을 사용하면 xsd가 유형이 지정된 데이터 집합 디자이너에 의해 공격을 당하기 때문에 데이터 집합을 변경할 때마다 xsd 파일에서 변경을 다시 수행하지 않아도됩니까? – James

+0

예, 문제가있는 xsd가 손상됩니다. DataSet에서 사용자 정의 enum 유형을 사용하기를 원하며 유지 관리가 최소화됩니다. 그러나 나는 정수로 앞뒤로 던지기보다는 열거 형을 직접 다룰 것을 선호한다. 우리가이 작업을 수행하는 곳은 소수에 불과하며 그 데이터 세트는 거의 변경되지 않으므로 그 영향은 미미합니다.( – Josh

0

나는 그렇게 생각하지 않습니다. SQL Server에는 열거 형 개념이 없습니다.

+0

데이터베이스에서 어떻게 표시되는지는 신경 쓰지 않습니다. int 또는 string이 될 수 있습니다. – svick

+0

신경 써야합니다. 데이터베이스에서 표현할 수없는 한 가지는 enum입니다. –

+0

동의하지 않으려하지만 열거 형은 ID와 이름이있는 조회 테이블에서 쉽게 나타낼 수 있습니다. 이는 특히 코드에서 enum이 변경 될 때만 조회 테이블이 변경된다는 것을 알고있는 경우 많이 수행됩니다. – Josh

0

저장소 계층 위에있는 ApplicationService 계층을 사용하는 것이 좋습니다. 그런 다음 ApplicationService 클래스에서이 클래스의 적절한 이름을 생각하면 저장소 계층에서 반환되는 데이터를 POCO 객체의 적절한 enum 값으로 변환 할 수 있습니다.

0

strongly typed dataset을 사용해 볼 수도 있습니다.

+0

이것이 열거 형에 어떻게 도움이됩니까? –

+0

이 구조를 사용하여 열 데이터 유형 중 하나를 사용자 정의 열거 유형에 변경하거나 추가 할 수 있습니다. 만큼 그것을 채우는 숫자 db 값이 열거 형의 범위에있는 한, 나는 그것이 작동 수 있다고 생각합니다. 부분 클래스를 추가하거나 생성 된 클래스를 수정해야합니다. – James

+0

이 항목이 제대로 작동한다고 가정해도 유지 관리 문제입니다. 이제 해당 열의 유효성에 대한 여러 정의가 생겼습니다. 또한, ADO.NET이 암시 적으로 코드에서 수행 할 수없는 캐스트를 수행한다는 사실을 알면 놀랄 것입니다. MyEnum e = 1; 컴파일되지 않습니다. –

0

기술적으로 할 수 없습니다. 열거 형은 정적 유형이며, 컴파일시에 모든 값을 알고있을 때 사용하도록 설계되었습니다. 몇 가지 해결 방법이 있지만이 방법을 사용하지 않는 것이 좋습니다.
수정할 수없는 데이터 세트를 살펴보면 Enum의 장점 대부분을 얻을 수 있으며 즉시 생성 될 수 있습니다.

데이터를 열거 형으로 저장할 수는 없지만 데이터베이스 열의 데이터가 정수 유형이면 데이터를 멋진 필터로 사용할 수 있습니다. 그것은 당신이 겪은 일이라면 완전히 다른 질문입니다. MSDN page으로 이동하여 Enum 's에서 읽으십시오.