У меня есть следующий сценарий: есть база данных, которая генерирует новый logTable каждый год. Это началось в 2001 году и в настоящее время имеет 11 таблиц. Все они имеют одинаковую структуру, то есть одинаковые поля, индексы, pk и т. Д.
У меня есть несколько классов, называемых менеджерами, которые, как следует из названия, управляют каждой операцией в этой БД. Для каждой отдельной таблицы у меня есть менеджер, за исключением этой таблицы, в которой у меня есть только один менеджер.
Я много читал и пробовал разные вещи, такие как использование ITable для динамического получения таблиц или интерфейс, который реализован во всех моих таблицах. К сожалению, я теряю свойства со строгим контролем типов, и с этим я не могу выполнять какие-либо поиски, обновления или что-либо еще, поскольку я не могу использовать logTable.Where(q=> q.ID == paramId)
.
Учитывая, что эти таблицы имеют одинаковую структуру, запрос, который ищет журналы с 2010 года, может быть именно тем, который ищет журналы с 2011 года и далее.
Я спрашиваю об этом только потому, что не хотел бы переписывать один и тот же код для каждой таблицы, поскольку они одинаковы по своей структуре.
EDIT
Я использую Linq to SQL в качестве ORM. И в этих таблицах используются все операции с БД, а не только выбор.