none
Usar tabelas temporárias com entity framework. Problema complicado de concorrência. RRS feed

  • 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á.

    segunda-feira, 27 de junho de 2011 13:42

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 :)
    terça-feira, 28 de junho de 2011 15:48

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 :)
    terça-feira, 28 de junho de 2011 15:48
  • O problema de criar uma tabela, mapear e usá-la como temporária é que ela não será única e as informações podem se misturar caso dois ou mais usuários estiver utilizando o sistema ao mesmo tempo.
    segunda-feira, 7 de dezembro de 2015 18:26