none
Erro em Trigger ao adicionar objeto RRS feed

  • Pergunta

  • Estou persistindo o objeto no banco de dados da seguinte forma:

    CaixaTransfItem item = newCaixaTransfItem() { CodCaixaTransfCab =  int.Parse(_tabControl_tpgCabecalho_txtCod.Text), CodCaixaMov       = (int)_tabControl_tpgItensCaixa_tlpGrids_grdParaIncluir[0, linha].Value, DtLancamento      = (DateTime)_tabControl_tpgItensCaixa_tlpGrids_grdParaIncluir[1, linha].Value, ValLancamento     = (Double)_tabControl_tpgItensCaixa_tlpGrids_grdParaIncluir[2, linha].Value, NumDocumento      = Convert.ToInt32(_tabControl_tpgItensCaixa_tlpGrids_grdParaIncluir[3, linha].Value) };

    ctx.CaixaTransfItems.AddObject(item); ctx.SaveChanges();

    Porém, está sendo disparada a seguinte exception:

    {"ORA-01403: dados não encontrados\nORA-01403: dados não encontrados\nORA-06512: em \"SISTEMA.TRG_CAIXA_MOV_A\", line 34\nORA-04088: erro durante a execução do gatilho 'SISTEMA.TRG_CAIXA_MOV_A'\nORA-06512: em line 4"}

    Porém, no banco de dados esta trigger SISTEMA.TRG_CAIXA_MOV_A é disparada apenas ao adicionar um objeto na tabela CaixaMovimento, que não é este caso!!

    Alguém faz ideia do porque esta Trigger está sendo lançada também no objeto CaixaTransfItem ?

    A tabela CaixaTransfItem possui relacionamento com a tabela CaixaMovimento, porém, ao adicionar um CaixaTransfItem esta Trigger não deveria ser lançada !!!

     


    Giuvane Conti - Se a resposta for útil, marque-a.

    segunda-feira, 21 de janeiro de 2013 17:01

Respostas

  • Olá Giuvane,

    Tudo beleza?


    Giuvane, a sua classe CaixaTransfItem provavelmente tem um relacionamento para CaixaMovimento.

    Vc deve settar o status da instância de CaixaMovimento como Unchanged.

    Veja abaixo:

    CaixaTransfItem item = newCaixaTransfItem()
    {
    	CodCaixaTransfCab =  int.Parse(_tabControl_tpgCabecalho_txtCod.Text),
    	CodCaixaMov       = (int)_tabControl_tpgItensCaixa_tlpGrids_grdParaIncluir[0, linha].Value,
    	DtLancamento      = (DateTime)_tabControl_tpgItensCaixa_tlpGrids_grdParaIncluir[1, linha].Value,
    	ValLancamento     = (Double)_tabControl_tpgItensCaixa_tlpGrids_grdParaIncluir[2, linha].Value,
    	NumDocumento      = Convert.ToInt32(_tabControl_tpgItensCaixa_tlpGrids_grdParaIncluir[3, linha].Value)
    };
    
    ctx.CaixaTransfItems.AddObject(item);
    ctx.ObjectStateManager.ChangeObjectState(item.CaixaMovimento, System.Data.EntityState.Unchanged);
    
    ctx.SaveChanges();

    []s!



    MSc. Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Visual C#
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    segunda-feira, 21 de janeiro de 2013 18:58
    Moderador