none
Select trazendo dados não atualizados do banco (Entity Framework) RRS feed

  • Pergunta

  • Fala galera, estou com um problemão aqui,

    eu faço um select no banco trazendo status = 1:

    DomainEntities contexto = Gerenciador.Instance.TbPB4_SEK_Aditamento.Contexto;
    
          return contexto
            .TbPB4_SEK_Aditamento
            .Include("TbPB4_SEK_Cessionario")
            .Include("TbPB4_SEK_Comprador")
            .Include("TbPB4_SEK_Contrato.TbPB4_SEK_Cliente")
            .Include("TbPB4_SEK_Contrato.TbPB4_SEK_ContratoXGarantia.TbPB4_SEK_Garantia")
            .Include("TbPB4_SEK_Contrato.TbPB4_SEK_ContratoXAvalista.TbPB4_SEK_Cliente")
            .FirstOrDefault(item => item.IdProduto == produto & item.IdProcesso == processo & item.TipoAditamento == tipo &
                    item.TbPB4_SEK_Contrato.Contrato == contrato & item.TbPB4_SEK_Contrato.TbPB4_SEK_Cliente.Documento == documento &
                    item.Status ==1);
    

    logo depois um outro projeto meu pega esse cara e muda o status dele para 2,

    e eu faço outro select pra me trazer o mesmo:

    DomainEntities contexto = Gerenciador.Instance.TbPB4_SEK_Aditamento.Contexto;
    
          return contexto
            .TbPB4_SEK_Aditamento
            .Include("TbPB4_SEK_Cessionario")
            .Include("TbPB4_SEK_Comprador")
            .Include("TbPB4_SEK_Contrato.TbPB4_SEK_Cliente")
            .Include("TbPB4_SEK_Contrato.TbPB4_SEK_ContratoXGarantia.TbPB4_SEK_Garantia")
            .Include("TbPB4_SEK_Contrato.TbPB4_SEK_ContratoXAvalista.TbPB4_SEK_Cliente")
            .FirstOrDefault(item => item.IdProduto == produto & item.IdProcesso == processo & item.TipoAditamento == tipo &
                    item.TbPB4_SEK_Contrato.Contrato == contrato & item.TbPB4_SEK_Contrato.TbPB4_SEK_Cliente.Documento == documento &
                    item.Status != 5 & item.Status != 1 & item.Status != 7);
    

    só que esse novo select acaba me trazendo o cara antigo não atualizado da base, com status 1.

    tentei dar um Refresh no contexto, mas ele acaba dando conflito nos relacionamentos dos outros objetos, pois só o dessa tabela estará em um contexto novo.

     

    não sei mais o que fazer...alguem tem uma idéia ai?

     

    abraço!

     

    terça-feira, 16 de agosto de 2011 17:28

Respostas

Todas as Respostas

  • após a mudança da propriedade para 2, você deu um SaveChanges() ? ele ocorreu sem erros ?
    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    terça-feira, 16 de agosto de 2011 17:40
    Moderador
  • sim, eu abro meu SQL management e faço o select por lá e ele está atualizado para a propriedade 2...

     

    mesmo eu colocando status != 1, ele traz status 1.

    terça-feira, 16 de agosto de 2011 17:47
  • Luciano, qunado você carregar o objeto, veja a propriedade dele EntityState para verificar qual o status do objeto, se ele tiver como Detached você poderá fazer a inclusão pelo 
    contexto.TbPB4_SEK_Aditamento.Attach(OBJETO);
    contexto.SaveChanges();
    


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    terça-feira, 16 de agosto de 2011 18:16
    Moderador
  • cara acho que consegui

     

    eu defini o MergeOption do meu contexto para OverwriteChanges

     

    parece que deu certo!

    terça-feira, 16 de agosto de 2011 20:00
  • Tenho um problema parecido!

    Fazendo um controle de usuário percebi que os dados do contexto  ficavam desatualizados quando a alteração não é realizada na aplicação (update direto na base), dai a duvida: como faria pra forçar uma consulta sempre atualizada à base de dados?

    quarta-feira, 6 de março de 2013 14:12