У меня есть несколько таблиц, которые мне нужно объединить в одну структуру, используя Linq
Мне нужно обработать несколько таблиц, которые имеют одинаковую структуру, но разные имена таблиц (финансовые данные распределены по 20 годам),Я могу создать код для динамического доступа к различным содержимым таблицы:
string tableName = "Trading.DataSources.Prices2017";
var results = DbContext.Set(Type.GetType(tableName));
Однако, когда я пытаюсь преобразовать результаты из одной таблицы в общую таблицу (цена, которая имеет такую же структуру таблицы) с помощью Cast:
var newResults = results.AsQueryable().Cast<Price>().ToList();
Я получаю следующую ошибку:
«System.NotSupportedException:« Невозможно привести тип «Trading.DataSources.Prices2017» к типу «Trading.DataSources.Price»'. LINQ to Entities поддерживает только приведение типов примитивов и перечислений EDM.' '
Я, очевидно, могу выполнять это приведение с помощью моего собственного метода преобразования.Однако это приводит к появлению нескольких версий одного и того же блока кода для обслуживания разных таблиц, и каждый год, когда у меня появляется новый набор данных о ценах, мне приходится вносить изменения в мой код для обслуживания имени таблицы нового года.
Есть ли способ справиться с этим динамически (или вообще)?