Nella tua modifica, menzioni "Più entità aggiunte potrebbero avere la stessa chiave primaria". errore. Senza conoscere tutti i dettagli di ciò che stai facendo qui, sembra che tu stia creando una relazione con un'entità - di cui ce ne sono due nel contesto con lo stesso ID. Queste sono probabilmente nuove entità che non sono state ancora salvate ed è qui che ottengono un ID generato automaticamente dal database. Se la relazione si basa sull'ID, c'è qualche ambiguità perché Entity Framework non è in grado di determinare a quale delle nuove entità punta effettivamente la relazione:entrambe hanno l'ID a cui punta la relazione.
Ci sono due potenziali soluzioni.
-
Genera un identificatore univoco temporaneo per le entità man mano che vengono create nel contesto. Entity Framework lo scarterà quando l'entità viene salvata, ma fino a quel momento può utilizzarla per distinguere una nuova entità dall'altra. Ho usato numeri interi negativi per questo scopo in passato.
-
Non creare le relazioni utilizzando gli ID ma piuttosto i riferimenti di entità. Se Entity Framework ha un riferimento diretto all'entità, non è necessario che attraversi il processo di identificazione dell'entità sulla base di identificatori non univoci e non dovrebbe avere questo problema.