문제

하나의 DataSet은 얼마를 나타내야 합니까?주문 시스템의 예를 사용하면 다음과 같습니다.귀하의 주문을 보여주는 동안 귀하와 유사한 품목 목록과 가장 인기 있는 품목 목록도 표시됩니다.귀하의 품목은 귀하와 귀하의 과거 주문, 선호하는 공급자 및 고객으로서 귀하와 관련된 다양한 종류의 정보와 관련된 관계망에 얽혀 있지만 다른 품목은 이러한 동일한 관계를 갖지 않습니다.귀하를 대표하는 일련의 항목을 탐색하는 데 사용하는 쿼리 세트는 다른 항목 목록 중 하나에 사용하는 쿼리와 다릅니다.

내 성향은 다양한 종류의 관계에 대해 서로 다른 DataSet을 만드는 것이지만 10개의 개별 항목 DataTable을 생성했는데 이는 잘못된 것 같습니다.잘못된 것처럼 보이는 작은 하위 집합에만 관심이 있음에도 불구하고 더 큰 DataSet을 인스턴스화할 때, 그리고 이 모든 것을 하나의 DataSet에 묶으려고 하면 여러 항목 테이블이 서로 옆에 있는 크고 지저분해 보이는 일이 발생합니다. 그게 틀렸다고 확신해요.

DataSet의 관계 기능을 과대평가하고 있는 것일 수도 있고, 아니면 지침을 사용하여 스스로를 극복해야 할 수도 있습니다.

도움이 되었습니까?

해결책

이것이 내가 데이터 세트를 사용하지 않는 이유입니다.강력한 형식의 데이터 세트를 사용하는 경우 강력한 형식의 이점을 누릴 수 있지만 일부만 사용하더라도 데이터 세트를 만드는 데 걸리는 시간과 코드 기반 측면의 확장성 측면에서 비용을 지불하게 됩니다.기존 항목을 수정하고 행 정의를 수정하면 코드 베이스에 "shotgun" 중단이 생성됩니다. 새 행을 추가하기 위한 각 정의는 더 이상 컴파일되지 않으므로 수정해야 하기 때문입니다.

위의 시나리오를 피하려면 가장 합리적인 접근 방식은 일반적으로 합리적인 재사용을 포기하는 것입니다.목적 및 용도별로 데이터 세트를 정의합니다.그러나 이것의 주요 문제는 API 사용입니다. 결국 다른 데이터 세트와 유사한 데이터 세트를 갖게 되지만 데이터 세트 유형이 다르기 때문에 고통스럽고 우아하지 않은 공통 API를 사용하도록 변환해야 합니다.

여기에 더해 강력한 형식의 데이터세트로 인해 코드가 끔찍해 보인다는 사실(유형 선언의 길이)이 내가 데이터세트를 포기하고 대신 비즈니스 개체로 전환한 이유와 거의 같습니다.

다른 팁

DataSet은 지나치게 과대평가되고 과도하게 사용되고 있습니다.강력한 형식의 컬렉션을 사용하세요(고마워요, 일반 및 자동 속성!).금상첨화로 이제 LINQ를 사용하여 사용자 지정 개체에 대해 멋진 쿼리 작업을 수행할 수도 있습니다.

데이터 세트와 사용자 정의 개체에 대한 좋은 Esposito 기사:

http://msdn.microsoft.com/en-us/magazine/cc163751.aspx

자동 속성:

http://weblogs.asp.net/dwahlin/archive/2007/12/04/c-3-0-features-automatic-properties.aspx

개체와 LINQ:

http://blogs.msdn.com/wriju/archive/2006/09/16/linq-custom-object-query.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top