none
Erro inexplicável no entity framework RRS feed

  • Pergunta

  • Bom dia moçada, sábado maravilhoso....

    Pessoal, tenho uma aplicação q usa o firebird com entity framework. Tudo ok.

    Mas ao tentar usar o método SaveChanges(); aparece o seguinte erro:

    Erro ao atualizar as entradas. Consulte a exceção interna para obter detalhes.

    Aqui está o erro em detalhes:

    System.Data.Entity.Infrastructure.DbUpdateException was caught
      HResult=-2146233087
      Message=Erro ao atualizar as entradas. Consulte a exceção interna para obter detalhes.
      Source=EntityFramework
      StackTrace:
           em System.Data.Entity.Internal.InternalContext.SaveChanges()
           em System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
           em System.Data.Entity.DbContext.SaveChanges()
           em SM_Crawler.wTemplates.salvar() na d:\Projetos\SM Crawler\SM Crawler\wTemplates.xaml.cs:linha 333
      InnerException: System.Data.UpdateException
           HResult=-2146233087
           Message=Erro ao atualizar as entradas. Consulte a exceção interna para obter detalhes.
           Source=System.Data.Entity
           StackTrace:
                em System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
                em System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
                em System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
                em System.Data.Entity.Internal.InternalContext.SaveChanges()
           InnerException: FirebirdSql.Data.FirebirdClient.FbException
                HResult=-2147467259
                Message=violation of PRIMARY or UNIQUE KEY constraint "PK_Template" on table "Template"
                Source=FirebirdSql.Data.FirebirdClient
                ErrorCode=335544665
                SQLSTATE=23000
                StackTrace:
                     em FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteNonQuery()
                     em System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues)
                     em System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
                InnerException: FirebirdSql.Data.Common.IscException
                     HResult=-2146233088
                     Message=violation of PRIMARY or UNIQUE KEY constraint "PK_Template" on table "Template"
                     Source=FirebirdSql.Data.FirebirdClient
                     ErrorCode=335544665
                     IsWarning=false
                     SQLSTATE=23000
                     StackTrace:
                          em FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ProcessResponse(IResponse response)
                          em FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ReadResponse()
                          em FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ReadGenericResponse()
                          em FirebirdSql.Data.Client.Managed.Version12.GdsStatement.Execute()
                          em FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior behavior, Boolean returnsSet)
                          em FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior behavior)
                          em FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteNonQuery()
                     InnerException: 
    

    Ao que parece  problema é de violação de chave estrangeira, mas iso está ok no banco, não tem erro lá.

    Alguém pode me dar uma luz de como resolver isso?

    P.S. Anteriormente essa aplicação utilizava EF com o SQLite, mudei para o firebird sem problemas e agora aparece esse erro.


    Se a resposta foi útil, por favor marque como útil. Leia a bíblia.


    sábado, 27 de abril de 2013 10:09

Respostas

  • Pessoal, resolvi parte do problema alterando o model.edmx... fui em cada tabela, no campo chave primaria e nas opções, na guia StoredGeneratedPattern setei o valor para Identity....

    Funcionou ao gravar numa tabela, então descomentei o resto do código pra gravar nas outras e apareceu esse erro:

    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

    E lá vamos nós quebrar a cabeça outra vez...


    Se a resposta foi útil, por favor marque como útil. Leia a bíblia.

    sábado, 27 de abril de 2013 11:22
  • Achei, o problema era de um campo q tava com size 10 quando era pra ta 100.

    Resolvido!  :)


    Se a resposta foi útil, por favor marque como útil. Leia a bíblia.

    sábado, 27 de abril de 2013 12:01

Todas as Respostas

  • Pessoal, resolvi parte do problema alterando o model.edmx... fui em cada tabela, no campo chave primaria e nas opções, na guia StoredGeneratedPattern setei o valor para Identity....

    Funcionou ao gravar numa tabela, então descomentei o resto do código pra gravar nas outras e apareceu esse erro:

    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

    E lá vamos nós quebrar a cabeça outra vez...


    Se a resposta foi útil, por favor marque como útil. Leia a bíblia.

    sábado, 27 de abril de 2013 11:22
  • Achei, o problema era de um campo q tava com size 10 quando era pra ta 100.

    Resolvido!  :)


    Se a resposta foi útil, por favor marque como útil. Leia a bíblia.

    sábado, 27 de abril de 2013 12:01
  • Rapaz, eu perdi um tempo com isso também e a solução que você apresentou resolveu pra mim também. Vlw.
    quarta-feira, 24 de setembro de 2014 19:46