В нашем приложении мы рассматриваем использование динамически генерируемых классов для хранения большого количества наших данных. Причиной этого является то, что у нас есть клиенты с таблицами, которые имеют разную структуру. Таким образом, у вас может быть таблица клиента под названием «DOG» (только что составленная), которая содержит столбцы «DOGID», «DOGNAME», «DOGTYPE» и т. Д. Клиент №2 может иметь ту же таблицу «DOG» со столбцами » DOGID "," DOG_FIRST_NAME "," DOG_LAST_NAME "," DOG_BREED "и т. Д. Мы не можем создавать классы для них во время компиляции, так как клиент может изменить схему таблицы в любое время.
На данный момент у меня есть код, который может генерировать класс "DOG" во время выполнения, используя отражение. Я пытаюсь понять, как заполнить этот класс из DataTable (или какого-либо другого механизма .NET) без чрезмерных потерь производительности. У нас есть одна таблица, которая содержит ~ 20 столбцов и ~ 50 тыс. Строк. Выполнение foreach по всем строкам и столбцам для создания коллекции занимает около 1 минуты, что слишком много.
Я пытаюсь найти решение, которое является слишком сложным, или я на правильном пути? Кто-нибудь еще испытывал такую проблему? Создание динамических классов было решением, которое разработчик из Microsoft предложил. Если мы сможем просто заполнить эту коллекцию и использовать ее эффективно, я думаю, что она может сработать.