2014-11-28 3 views
2

같은 구조이지만 다른 데이터를 가진 6 개의 테이블이 있습니다. 각 테이블에는 100 만 개 미만의 레코드가 저장됩니다.LINQ to SQL. 런타임시 테이블 이름 변경

성능을 위해 각 테이블에 1 년을 넣습니다. 그래서 나는이 Document_2005, Document_2006, ecc와 같은 테이블을 가지고 ... 방금 ​​수입 새해 모두에 대한 절차를 완료하고 모든 것이 잘 작동하지만 aspxGridView (DevExpress)는 매우 느립니다.

그래서 ServerMode를 활성화해야만 성능이 훨씬 향상되었지만 ServerMode에 LINQ TO SQL 클래스가 필요하기 때문에 더 이상 SQL을 사용하여 올바른 테이블에 액세스 할 수는 없습니다. String.Format("Document_{0}",year);.

이제 모든 클래스를 dbml 파일에 넣었지만 모든 것이 잘 작동하지만 다음에 몇 년 후에 수동으로 추가하고 매년 다시 작성해야하는 새 테이블을 어떻게 매핑 할 수 있습니까? 자동 생성 클래스에서 소스 테이블 이름을 변경하려고 시도했는데 다른 테이블 이름으로 TableAttribute를 변경하고 모든 것이 올바르게 작동하면 다시 시도했습니다.

언제든지 프로젝트를 다시 빌드하지 않고 동일한 결과를 얻을 수 있습니까?

TypeDescriptor.AddAttributes를 사용하여 생성 된 클래스의 TableAttribute를 변경하려고 시도하지만 작동하지 않습니다. 리플렉션에 대해 생각하고 있는데 리플렉션이이 경우 아무 것도 할 수없는 것 같습니다 ...

답변

0

예, Linq-2-sql은 코드 기반이므로 수동으로 추가하고 다시 배포해야합니다. 대부분의 ORM 프레임 워크에서 그렇다고 생각합니다.

물론 향후 10 년 동안 모두 추가 할 수 있습니다.

정말 파티셔닝 등으로 이동하지 않는 한이 방법이 가장 좋습니다. 내가 생각하기에 그다지 문제는 아니다.

+0

예 나는 2020 년까지 빈 테이블을 만들 것입니다. – user3759697