Я работаю над приложением WP7 mango, которое использует Linq2SQL для доступа к данным. У меня есть объект Note, у которого есть Auto сгенерированный ключ типа int.Выполнение DeleteOnSubmit(), SubmitChanges(), InsertOnSubmit(), SubmitChanges() не работает (выбрасывает Entity уже существует Исключение)!
В первый раз, когда я добавляю новое примечание к db, операция отлично работает, записка сохраняется, а затем, если я удалю ее из db, она также удаляется из db. Первая сущность всегда равна Id = 0.
Тогда, если я хочу добавить новую заметку после удаления первой заметки, я получаю исключение, говорящее, что объект уже существует. Я пришел к выводу, что первая сущность с Id = 0 не была удалена, хотя я назвал SubmitChanges в моем контексте данных.
Кроме того, я использую тот же контекст данных для операций с данными в моем репозитории и в том же экземпляре репозитория (один сингл по соображениям производительности). Чтобы подтвердить это поведение, я попытался выполнить последовательность вызовов, и это не удалось !!!
this.DbContext.Notes.DeleteOnSubmit(value);
this.DbContext.SubmitChanges();
this.DbContext.Notes.InsertOnSubmit(value);
this.DbContext.SubmitChanges();
В нем говорится, что он не может добавить Сущность, которая уже существует. Любые объяснения этого поведения? Спасибо заранее.
Примечание: Когда я использую два разных экземпляра контекста данных, это поведение исчезает.