Alterar o mapa da entidade para outra tabela "desconhecida" no tempo de execução

Eu tenho que escrever um aplicativo c # que funciona com um banco de dados do servidor SQL criado e mantido por um aplicativo antigo. O aplicativo cria novas tabelas a cada ano e a "propriedade year" está no nome da tabela. O número de tabelas que ele cria pode variar dependendo do número de "seções" que o usuário criou dentro do aplicativo. Então, eu tenho que trabalhar com tabelas como Cwx_DRyz (bastante auto explicativo ...), onde "wx" pode ser a seção, e "yz" seria o ano. Um exemplo de grupo de tabela poderia ser:

C01_DR07

C01_DR08

C01_DR09

C02_DR08

C02_DR09

C03_DR06

C04_DR12

E todas essas tabelas podem representar, por exemplo, clientes. Seriam clientes de diferentes seções e anos, mas clientes com a mesma estrutura.

Minha pergunta é: Posso ter uma entidade de cliente para lidar com todas essas tabelas e alterar o mapeamento de um para outro em tempo de execução? O título diz "desconhecido" porque não conheço as tabelas antes do tempo de execução.

A questão mais semelhante que eu encontrei éEntity Framework mapeia várias tabelas para uma entidade ea resposta é usar a "Tabela por herança de tipo de concreto", mas não é útil para o meu caso.

PS: EF versão 4.3.1 e VS2010

EDIT: As tabelas não têm chaves primárias ... A maioria delas tem colunas que são supostas para ter valores exclusivos (integer ou string).

questionAnswers(1)

yourAnswerToTheQuestion