2012-02-06 2 views
2

netTiers 생성 코드가 정확한 데이터베이스 스키마에 의존하며 유사 콘텐츠로 인해 용서할 수 없음을 발견했습니다. 예를 들어, 기존 테이블에 열을 추가합니다. - 테이블 중간에 열이 추가되면 netTiers가 다시 컴파일되지 않으면 런타임에 캐스팅 오류가 표시됩니다. 이것은 열이 이름이 아닌 서수로 액세스되기 때문입니다. (변경 로그를 살펴보면이 작업이 성능 향상으로 수행되었음을 알 수 있습니다.)netTiers 데이터베이스 스키마의 하위 호환성

이것은 과거에는 문제가 아니었지만 현재 프로젝트에서는 가동 중지 시간 업그레이드가없는 시스템을 구축하려고합니다. 우리가 가진 도전은 데이터베이스 업그레이드이며 코드에 영향을 미치지 않고 데이터베이스를 업데이트 할 수 있다면 좋을 것입니다.

netTiers를 사용하는 사람이 비슷한 문제가 있거나 비슷한 요구 사항을 봤습니까?

이름으로 열에 액세스 할 수 있도록 서식 파일을 변경하면 이전 스키마 버전에 더 관대합니까? 그렇다면 나에게 이것은 성능에 약간의 타격이 될만한 가치가 있다고 생각한다. (여기서 3 %는 인용문이다. DataReader ordinal-based lookups vs named lookups)

답변

0

앞서 언급했듯이 .NetTiers는 DataReader에서 서수 기반 검색을 사용한다. .NetTiers를 훌륭하게 재생할 수있는 유일한 방법은 항상 기존 테이블의 끝에 새 열을 추가하고 테이블 필드 순서를 다시 구성하지 않는 것입니다.

이렇게하면 v1 코드가 테이블 끝 부분에 새 열이 추가 된 테이블에 대해 계속 작동하지만 v2 코드는 새로운 추가 기능과 함께 작동합니다.

관련 문제