Possível mudar a tabela em tempo de execução usando o Entity Framework?

5

Eu tenho código para alternar entre bancos de dados ao usar o EF, mas agora também preciso permitir que o usuário escolha uma tabela específica. (Todas as tabelas usam o mesmo esquema, mas podem ter nomes diferentes devido à maneira como o cliente atualiza os conjuntos de dados). Existe uma maneira de fazer isso? E se isso for feito, pode ser feito sem ser quebrado por atualizações feitas no modelo de dados da Entidade?

    
por Stonetip 18.09.2012 / 00:23
fonte

1 resposta

1

Esta postagem do blog entra em detalhes: Alterando o modelo do Entity Framework em tempo de execução . É aparentemente bastante difícil.

Out of the box there is no way, or at least not an easy one, to change table or schema names used by the Entity Framework at runtime...

On CodePlex however you can find an adapter for your Entity Framework model to change it at runtime. You can change the connection to the database, change table names or use different schemas...

So we’re all set to support multi tenancy? Not quite...

For a multi tenant application we need a different model for each of our customers so we need to make another change to the code as available in the CodePlex project. If you don’t mind taking the performance hit to rewrite the mapping every single time an object context is created you can just open the ConnectionAdapter class and change the static variables which hold the model information to instance variables...

    
por 18.09.2012 / 07:31
fonte