Usuário com melhor resposta
Usar tabelas temporárias com entity framework. Problema complicado de concorrência.

Pergunta
-
Bom dia, gostaria de saber se existe como criar e trabalhar com dados em tabelas temporárias no entity framework em tempo de execução.
Estou precisando disso para resolver um problema complicado de concorrência:
1 - Cada usuário que entre no sistema trabalha com uma cópia com os dados de uma tabela de funcionários.
2 - Usuário modifica o que tiver que modificar na sua cópia dos dados.
3 - Quando o usuário termina ele pode:
3.1 - Clicar em um botão Salvar. Então o sistema percorre os dados temporários dele comparando com a tabela permanente de funcionários. Onde houver modificações ele replica na tabela permanente.
3.1.1 - Se as informações da tabela permanente forem sobrescritas (por outro usuário) e estiverem desatualizadas para o usuário, o sistema avisa quais registros foram modificados e pergunta para o usuário se ele quer sobrescreve-los novamente.
3.2 - Clicar no botão Cancelar e não salvar nenhuma mudança no banco.
Eu pensei em usar isolation level snapshot para resolver o problema, mas como estou usando uma view que faz consulta de 2 bancos diferentes, send que em um deles o snapshot não está habilitado e eu não posso modificar isso (banco de outra empresa, só pra consulta).
Se alguém tiver alguma sugestão para resolver esse problema mais simples que tabelas temporárias eu agradeço desde já.
Respostas
-
Rafael, infelizmente a resposta é não. Como o Entity Framework, o NHibernate e qualquer outra ferramenta de ORM é necessário mapear uma tabela existente para uma entidade na sua aplicação. Não tem como trabalhar com dados dinâmicos em tempo de execução. O que você pode fazer é criar uma tabela que irá se passar por sua tabela temporaria e já a deixar mapeada.
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Marcado como Resposta Rafael_Vasconcelos terça-feira, 28 de junho de 2011 16:56
Todas as Respostas
-
Rafael, infelizmente a resposta é não. Como o Entity Framework, o NHibernate e qualquer outra ferramenta de ORM é necessário mapear uma tabela existente para uma entidade na sua aplicação. Não tem como trabalhar com dados dinâmicos em tempo de execução. O que você pode fazer é criar uma tabela que irá se passar por sua tabela temporaria e já a deixar mapeada.
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Marcado como Resposta Rafael_Vasconcelos terça-feira, 28 de junho de 2011 16:56
-