우리의 응용 프로그램에서는 동적으로 생성 된 클래스를 사용하여 많은 데이터를 보유 할 것을 고려하고 있습니다. 이렇게하는 이유는 테이블 구조가 다른 고객이 있기 때문입니다. 따라서 고객은 "DOG", "DOGNAME", "DOGTYPE"등의 열을 포함하는 "DOG"라는 고객 테이블을 가질 수 있습니다. 고객 # 2는 " DOGID ","DOG_FIRST_NAME ","DOG_LAST_NAME ","DOG_BREED "등이 있습니다. 고객이 언제든지 테이블 스키마를 변경할 수 있으므로 컴파일 타임에 이러한 클래스를 생성 할 수 없습니다.C#/.NET 4.0에서 동적 클래스 채우기 및 사용
현재 리플렉션을 사용하여 런타임에 "DOG"클래스를 생성 할 수있는 코드가 있습니다. 알아 내려고하는 것은 극한의 성능 저하없이 DataTable (또는 다른 .NET 메커니즘)에서이 클래스를 채우는 방법입니다. ~ 20 열과 ~ 50k 행을 포함하는 하나의 테이블이 있습니다. 컬렉션을 생성하기 위해 모든 행과 열에 대해 foreach를 수행하면 약 1 분이 소요됩니다. 이는 너무 길어집니다.
너무 복잡하거나 올바르게 진행되는 해결책을 찾고 있습니까? 다른 사람이 이런 문제를 겪었습니까? 동적 클래스 생성은 Microsoft의 개발자가 제안한 솔루션입니다. 이 컬렉션을 채우고 효율적으로 사용할 수 있다면 효과가 있다고 생각합니다.
메모를 작성하기 만하면 고객이 즉시 테이블 스키마를 볼 수 있으므로 ORM이 작동하지 않습니다.고객이 데이터베이스를 변경할 때마다 응용 프로그램을 다시 컴파일하고 다시 게시 할 수 없습니다. 그러나 많은 양의 데이터가있는 경우 너무 느리기 때문에 DataTable에 의존 할 수 없습니다. –