InvalidOperationException ao chamar SaveChanges na estrutura de Entidade .NET
Estou tentando aprender a usar o framework Entity, mas acertei um problema que não consigo resolver. O que estou fazendo é que estou andando em uma lista de filmes que tenho e insere cada um em um banco de dados simples.
Este é o código que estou usando
<code>private void AddMovies(DirectoryInfo dir) { MovieEntities db = new MovieEntities(); foreach (DirectoryInfo d in dir.GetDirectories()) { Movie m = new Movie { Name = d.Name, Path = dir.FullName }; db.AddToMovies(movie); } db.SaveChanges(); } </code>
Quando faço isso, recebo uma exceção em db.SaveChanges () que lê.
As alterações no banco de dados foram confirmadas com sucesso, mas ocorreu um erro ao atualizar o contexto do objeto. O ObjectContext pode estar em um estado inconsistente. Mensagem de exceção interna: AcceptChanges não pode continuar porque os valores de chave do objeto entram em conflito com outro objeto no ObjectStateManager. Certifique-se de que os valores da chave sejam exclusivos antes de chamar AcceptChanges.
Não consegui descobrir o que está causando esse problema. Minha tabela de banco de dados contém três colunas
Id int autoincrement
Nome nchar (255)
O caminho nchar (255)
Atualização: Eu verifiquei meu arquivo edmx e a seção SSDL tem o StoreGeneratedPattern = "Identity" como sugerido. Eu também segui o post do blog e tentei adicionar ClientAutoGenerated = "true" e StoreGenerated = "true" no CSDL como sugerido lá. Isso resultou em erros de compilação (Erro 5: o atributo 'ClientAutoGenerated' não é permitido). Como o post do blog é de 2006 e tem um link para um post de acompanhamento, presumo que tenha sido alterado.
No entanto, não consigo ler a postagem de acompanhamento, pois parece exigir uma conta do msdn.