EF добавляет сущность типа «XXXX», которая выходит из строя, потому что другая сущность того же типа уже имеет то же значение первичного ключа. При использовании метода «Прикрепить» или установке состояния объекта на «Без изменений» или «Изменено»
Потому что другие сущности того же типа уже имеют одинаковое значение первичного ключа. Такое поведение может возникать при использовании метода «Прикрепить» или при установке статуса объекта на «Без изменений» или «Изменено», если в чертеже есть противоречивое значение ключа Это может быть связано с тем, что некоторые объекты являются новыми и ещё не получили сгенерированное базой данных ключевое значение (новая сущность), в этом случае граф отслеживается с помощью метода «Добавить» или состояния «Добавлено», а состояние неновой сущности устанавливается как «Без изменений» или «Изменено» соответственно. На самом деле эта ошибка заключается в том, что когда EF открывает транзакцию, в контексте EF уже есть данные с тем же первичным ключом, и лично я сталкиваюсь с этой проблемой в различных ситуациях:
Ситуация 1:
Изменяя, просматривая одни и те же данные в таблице (например, повторяя количество инвентаризации того же товара), это первый случай, когда контекстный кэш не очищается
Код таков:
Цикл здесь не сообщает об ошибке в первый раз, а во второй раз будет ошибка
Решение:
Ситуация 2:
Операция цикла сначала добавляет фрагмент данных, а затем изменяет данные
Код таков:
Ошибки также сообщаются здесь, особенно для новых EF или новых сущностей
Решение:
|