InvalidOperationException podczas wywoływania SaveChanges w środowisku .NET Entity

Próbuję nauczyć się korzystać ze środowiska Entity, ale trafiłem na problem, którego nie mogę rozwiązać. Co robię, to przechodzę przez listę filmów, które mam i wstawiam każdą z nich do prostej bazy danych.

To jest kod, którego używam

<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>

Gdy to zrobię, otrzymuję wyjątek w pliku db.SaveChanges (), który odczytuje.

Zmiany w bazie danych zostały pomyślnie zatwierdzone, ale wystąpił błąd podczas aktualizowania kontekstu obiektu. Obiekt ObjectContext może być w niespójnym stanie. Komunikat o wyjątku wewnętrznym: AcceptChanges nie może być kontynuowany, ponieważ wartości kluczy obiektu powodują konflikt z innym obiektem w ObjectStateManager. Upewnij się, że wartości klucza są unikalne przed wywołaniem AcceptChanges.

Nie byłem w stanie dowiedzieć się, co powoduje ten problem. Moja tabela bazy danych zawiera trzy kolumny
Id int autoincrement
Nazwa nchar (255)
Ścieżka nchar (255)

Aktualizacja: Sprawdziłem mój plik edmx, a sekcja SSDL ma StoreGeneratedPattern = „Tożsamość” zgodnie z sugestią. Podążyłem też za postem na blogu i próbowałem dodać ClientAutoGenerated = "true" i StoreGenerated = "true" w CSDL, zgodnie z sugestią. Spowodowało to błędy kompilacji (błąd 5: atrybut „ClientAutoGenerated” nie jest dozwolony.). Ponieważ wpis na blogu pochodzi z 2006 r. I zawiera link do posta kontrolnego, zakładam, że został zmieniony.

Nie mogę jednak odczytać postu, ponieważ wydaje się, że wymaga on konta msdn.

questionAnswers(8)

yourAnswerToTheQuestion