Я работаю над приложением манго WP7, которое использует Linq2SQL для доступа к данным.У меня есть объект Note, который имеет автоматически сгенерированный ключ типа int.
Когда я добавляю новую заметку в БД в первый раз, операция работает нормально, заметка сохраняется, а затем, если я удаляю ее из БД, она также удаляется из БД.Первая сущность всегда имеет Id = 0.
Затем, если я хочу добавить новую заметку после удаления первой заметки, я получаю исключение о том, что сущность уже существует.Я пришел к выводу, что первая сущность с Id = 0 не была удалена, хотя я и вызвал SubmitChanges для своего контекста данных.
Кроме того, я использую один и тот же контекст данных для операций с данными в моем хранилище и в том же самомэкземпляр репозитория (синглтон по соображениям производительности).Чтобы подтвердить это поведение, я попытался установить последовательность вызовов, и это не удалось !!!
this.DbContext.Notes.DeleteOnSubmit(value);
this.DbContext.SubmitChanges();
this.DbContext.Notes.InsertOnSubmit(value);
this.DbContext.SubmitChanges();
Он говорит, что не может добавить сущность, которая уже существует.Есть ли объяснение этому поведению?Заранее спасибо.
Примечание. Когда я использую два разных экземпляра контекста данных, это поведение исчезает.