none
Problema com o ExecuteStoreCommand para inserir RRS feed

  • Pergunta

  • Estou realizando o seguinte comando: EntidadesPublix.GetInstance.ExecuteStoreCommand(@"insert into tb_sys_objeto_perfil (perf_ch_perfil,objc_ch_objeto,obpe_tx_permitir)  (SELECT perf_ch_perfil,{0},'S' as obpe_tx_permitir from tb_sys_perfil)", idObjeto);

    O comando inserir os dados na tabela normalmente, so que os novos dados não são mostrados pelo linq, parecendo que ele utiliza um cache com os dados antigos. Os novos dados são mostrados apenas quando restart o IIS.

    Já tentei chamar o SaveChanges depois do ExecuteStoreCommand, mesmo assim persiste o problema...


    Fernando
    quinta-feira, 16 de setembro de 2010 11:52

Respostas

  • Cara o codigo que faz alteração no banco está ae. Mas já resolvi meu problema que era porque estava utilizando singleton para o contexto.
    Fernando
    quarta-feira, 22 de setembro de 2010 20:24

Todas as Respostas

  • Posta o code
    sexta-feira, 17 de setembro de 2010 22:53
  • Aqui está uma exemplo. Sei que poderia fazer a mesma coisa usando a linguagem default, mas vão ter casos no meu sistema que precisarei chamar query no padrão ansi. 

    using (EntidadesPublix contexto = new EntidadesPublix())

                {

                    int linhas = contexto.ExecuteStoreCommand(@"Update tb_sys_objeto_perfil set obpe_tx_permitir = {2} 

                                      where perf_ch_perfil = {0} and objc_ch_objeto = {1}", idPerfil, idObjeto, Permitir);

                    SysObjetoPerfil obj = (from i in contexto.SysObjetoPerfil

                                           where i.Objeto.Id.Equals(idObjeto) &&

                                               i.Perfil.Id.Equals(idPerfil)

                                           select i).FirstOrDefault();

                }

    Quando executo este comando o campo obpe_tx_permitir é setado no banco de dados mas quando faz a consulta pelo segundo comando o valor do campo ainda está com o valor antigo. Os novos valores so aparecem quando eu restart o IIS.


    Fernando
    segunda-feira, 20 de setembro de 2010 11:18
  • mais vc nao chamou o savechanges dentro do seu using
    segunda-feira, 20 de setembro de 2010 14:21
  • Fernando,

    Acho que você não postou o código onde você faz efetivamente a alteração no banco. Você poderia postar pra gente dar uma olhada?


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    terça-feira, 21 de setembro de 2010 20:26
    Moderador
  • Cara o codigo que faz alteração no banco está ae. Mas já resolvi meu problema que era porque estava utilizando singleton para o contexto.
    Fernando
    quarta-feira, 22 de setembro de 2010 20:24