Usuário com melhor resposta
Erro inexplicável no entity framework

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.
- Editado Tianodraco sábado, 27 de abril de 2013 10:41
- Tipo Alterado AndreAlvesLimaModerator segunda-feira, 29 de abril de 2013 10:57
- Movido AndreAlvesLimaModerator segunda-feira, 29 de abril de 2013 10:57
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.
- Marcado como Resposta AndreAlvesLimaModerator segunda-feira, 29 de abril de 2013 10:57
-
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.
- Marcado como Resposta AndreAlvesLimaModerator segunda-feira, 29 de abril de 2013 10:57
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.
- Marcado como Resposta AndreAlvesLimaModerator segunda-feira, 29 de abril de 2013 10:57
-
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.
- Marcado como Resposta AndreAlvesLimaModerator segunda-feira, 29 de abril de 2013 10:57
-