У меня есть любимый проект, написанный на php.Одно из заданий, которые выполняет мой код, - это загрузить кучу CSV-файлов и записать их в таблицу MySQL, в которой есть как автоматически сгенерированный первичный ключ, так и составной уникальный ключ.У меня нет контроля и способов проверить, какой файл уже обработан, поэтому пригодился уникальный ключ.Я вставляю данные в таблицу с помощью INSERT IGNORE
, который молча завершается сбоем, когда я пытаюсь вставить данные, которые уже существуют, и все работает отлично, как и должно.
Теперь я пытаюсь создать аналогичный проект в C # 4, используя LINQ ToОбъекты, но когда я пытаюсь вызвать метод ObjectContext.SaveChanges()
для объектов из файлов, которые уже находятся в таблице, UpdateException
выбрасывается с SqlClient.SqlException
как внутреннее исключение.Одним из решений было добавление Ignore Duplicate Keys = Yes
в индекс, и это вроде работает, но
- Это изменение на сервере, а не на клиенте
- При обновлении с существующим индексом