Ve své úpravě zmiňujete „Více přidaných entit může mít stejný primární klíč“. chyba. Aniž byste znali všechny podrobnosti o tom, co zde děláte, zní to, jako byste si vytvořili vztah s entitou – z nichž jsou dvě v kontextu se stejným ID. Pravděpodobně se jedná o nové entity, které ještě nebyly uloženy, kde získávají automaticky generované ID z databáze. Pokud je vztah založen na ID, pak existuje určitá nejednoznačnost, protože Entity Framework není schopen určit, na kterou z nových entit vztah skutečně ukazuje – obě mají ID, na které vztah ukazuje.
Existují dvě možné opravy.
-
Generujte dočasný, jedinečný identifikátor pro entity, jak jsou vytvářeny v kontextu. Entity Framework toto zruší, když se entita uloží, ale do té doby jej může používat k odlišení jedné nové entity od druhé. V minulosti jsem k tomuto účelu používal záporná celá čísla.
-
Nevytvářejte vztahy pomocí ID, ale spíše na základě odkazů na entity. Pokud má Entity Framework přímý odkaz na entitu, pak nemusí procházet procesem identifikace entity na základě nejedinečných identifikátorů a neměl by mít tento problém.