2008-10-31 4 views
2

프로젝트에서 .NET 유형이 지정된 데이터 세트를 사용하고 있으며 여러 테이블의 데이터를 데이터 세트로 프리 페치 한 다음 해당 데이터 세트를 여러 가지 방법으로 전달하는 경우가 종종 있습니다. 처리. 각 메소드가 필요한 데이터를 정확히 결정한 다음 데이터 자체를로드하게하는 것이 더 깔끔하게 보입니다. 그러나 여러 가지 방법이 동일한 데이터로 작동하므로 처음부터 데이터를 한 번만로드하면 성능 이점을 얻으실 수 있습니다..NET 유형 지정 데이터 세트로 데이터 프리 페치 및 종속성 관리

내 문제는 종속성을 관리하는 데 좋은 방법이나 패턴을 알지 못한다는 것입니다. (필자는 사용할 각 클래스/메소드에 필요한 모든 데이터를로드하려고합니다. 데이터 세트). 현재, 데이터 셋을 사용하여 모든 것을 적절하게로드 할 수 있도록 다양한 클래스의 코드를 살펴 보겠습니다.

이 상황에서 사용하기 좋은 방법이나 패턴은 무엇입니까? 근본적으로 잘못된 것을하고 있습니까? 형식화 된 데이터 집합을 사용하고 있지만 프리 페칭 데이터가 사용되는 일반적인 상황 인 것 같습니다.

감사합니다.

답변

1

당신이 찾고있는 "패턴"은 아마도 게으른 로딩인지 지연된 로딩 일 것입니다. 형식화 된 데이터 집합은 모든 메서드 나 클래스가 필요로하는 모든 형식의 구조를 가질 수 있지만 일부 메서드/클래스가 해당 데이터의 특정 부분에 액세스하려고 시도 할 때까지 데이터가 채워지지 않습니다.

좋은 예는 이름과 주소입니다. 이름 목록이있을 수 있으며 각 이름에 여러 개의 주소가있을 수 있습니다. 주소에 액세스 할 필요가없는 메소드/클래스는 주소를로드하지 않습니다. 그러나 어떤 메소드 나 클래스가 주어진 이름의 주소에 접근하자마자 그 이름의 주소가로드됩니다. 해당 이름에 대해 주소를 계속 사용하면 데이터가 이미로드 된 것입니다.

형식화 된 데이터 집합에서이를 구현하는 것은 수동 프로세스입니다. (그리고 내가 그들보다 더 미워 결국 내가 입력 된 데이터 세트로 작업 할 때마다.)이 기능이 내장되어 있습니다로 SQL로 LINQ를보고 할 수 있습니다.이뿐만 아니라 내장 한 다른 유사한 프레임 워크가있다.

1

그런 다음 데이터를 처리하고, 데이터 프리 페치 각 클래스가 일부 데이터 요구 사항을 추가 할 것이다 복합 패턴과 비슷한 사용할 수 있습니다. UsedClasses

Class.Process (데이터 세트)

각 클래스 UsedClasses 각 클래스

DataSet.AddRequirement (Class.Requirements)

DataSet.Prefetch

위한

관련 문제