I din redigering nämner du "Flera tillagda enheter kan ha samma primärnyckel." fel. Utan att veta alla detaljer om vad du gör här, låter det som att du skapar en relation med en entitet - av vilka det finns två i sammanhanget med samma ID. Dessa är förmodligen nya enheter som ännu inte har sparats, vilket är där de får ett automatiskt genererat ID från databasen. Om relationen är baserad på ID så finns det en viss oklarhet eftersom Entity Framework inte kan avgöra vilken av de nya enheterna som relationen faktiskt pekar på – de har båda ID som relationen pekar på.
Det finns två möjliga korrigeringar.
-
Generera en tillfällig, unik identifierare för entiteter när de skapas i sammanhanget. Entity Framework kommer att förkasta detta när entiteten sparas, men fram till den tidpunkten kan den använda den för att skilja en ny entitet från den andra. Jag har använt negativa heltal för detta ändamål tidigare.
-
Skapa inte relationerna med ID:n utan snarare på enhetsreferenser. Om Entity Framework har en direkt referens till enheten behöver den inte gå igenom processen för att identifiera enheten baserat på icke-unika identifierare och bör inte ha detta problem.