EF добавя обект от тип "XXXX", който се проваля, защото друг обект от същия тип вече има същата основна ключова стойност. При използване на метода "Attach" или задаване на състоянието на обекта на "Непроменено" или "Модифицирано"
Защото други обекти от същия тип вече имат същата първична ключова стойност. Това поведение може да се появи при използване на метода "Прикачи" или при задаване на статуса на обекта "Непроменено" или "Модифицирано", ако някое от чертежите има противоречива ключова стойност Това може да се дължи на факта, че някои обекти са нови и все още не са получили ключова стойност, генерирана от база данни (нов обект), в който случай графът се проследява чрез метода "Add" или състоянието на "Added" entity, а състоянието на неновия обект се задава на "Unchanged" или "Modified" съответно. Всъщност тази грешка е, че когато EF отвори транзакция, вече има данни със същия първичен ключ в контекста на EF, и лично аз срещам този проблем в различни ситуации:
Ситуация 1:
Модифициране, итерация на едни и същи данни в таблица (например итерация на инвентара на същия артикул), този случай трябва да е първият път, когато контекстният кеш не се изчиства
Кодът е следният:
Цикълът тук не докладва грешка при първия път, а втория път ще бъде допусната грешка
Решение:
Ситуация 2:
Операцията loop първо добавя парче данни, след което модифицира данните
Кодът е следният:
Тук също се докладват грешки, особено за нови EF или нови субекти
Решение:
|