System.Data.Linq.DuplicateKeyException: невозможно добавить объект с ключом, который уже используется - PullRequest
1 голос
/ 08 февраля 2011

мое приложение для Windows.Я пытаюсь вставить запись через LINQ DataContext.Имеет уникальный идентификатор в таблице.Даже я выполняю триггер после вставки.Поэтому я делаю запрос на выбор в конце триггера, чтобы получить номер автогенератора и избежать ошибки автосинхронизации.Поскольку это приложение для Windows, я могу хранить контекст в течение длительного времени.Когда я создаю новый объект (например, порядок) и выполняю ту же предыдущую операцию, после операции SubmitChanges он показывает, что не может иметь дубликат ключа.Разве я не могу использовать этот же контекст для вставки второй записи?Или мне нужно создать новый контекст для вставки новой записи? (Эта концепция единицы работы здесь?).Создание нового контекста - плохая идея, так как мне нужно снова загрузить все данные.

Есть мысли?

Позвольте мне привести пример кода, чтобы озвучить мою ситуацию.* Множество таких настроек, как это ...

CallCenterLogObjCotext.CallDetails.InsertOnSubmit(newCallDetailsOpenTicket); CallCenterLogObjCotext.SubmitChanges();

Как я уже упоминал выше, это щелчок по кнопке Open Ticket в форме окна.Я изменяю значения fname, lname и всего в текстовых полях, доступных в этой форме, и нажимаю ту же кнопку.Так что он будет вызывать тот же метод снова.Я получаю указанную ниже ошибку.System.Data.Linq.DuplicateKeyException: не удается добавить объект с ключом, который уже используется.

Спасибо.

1 Ответ

0 голосов
/ 13 апреля 2011

Посмотрите на этот вопрос, он касается вашего исключения и предлагает решение:

ON INSERT: Невозможно добавить объект с ключом, который уже используется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...