sql >> Database >  >> RDS >> Mysql

meerdere toegevoegde entiteiten kunnen dezelfde primaire sleutel hebben op database seed

In je bewerking vermeld je de 'Meerdere toegevoegde entiteiten kunnen dezelfde primaire sleutel hebben'. fout. Zonder alle details te kennen van wat je hier doet, klinkt het alsof je een relatie aangaat met een entiteit - waarvan er twee in de context zijn met dezelfde ID. Dit zijn waarschijnlijk nieuwe entiteiten die nog niet zijn opgeslagen en waar ze een automatisch gegenereerde ID uit de database krijgen. Als de relatie is gebaseerd op de ID, is er enige onduidelijkheid omdat Entity Framework niet kan bepalen naar welke van de nieuwe entiteiten de relatie daadwerkelijk verwijst - ze hebben allebei de ID waarnaar de relatie verwijst.

Er zijn twee mogelijke oplossingen.

  1. Genereer een tijdelijke, unieke id voor entiteiten zoals ze in de context worden gemaakt. Entity Framework zal dit weggooien als de entiteit wordt opgeslagen, maar tot dat moment kan het het gebruiken om de ene nieuwe entiteit van de andere te onderscheiden. Ik heb in het verleden voor dit doel negatieve gehele getallen gebruikt.

  2. Maak de relaties niet op basis van ID's, maar op entiteitsreferenties. Als Entity Framework een directe verwijzing naar de entiteit heeft, hoeft het niet het proces te doorlopen om de entiteit te identificeren op basis van niet-unieke identifiers en zou dit probleem niet moeten optreden.



  1. Encryptie in rust en/of AES_ENCRYPT

  2. MySQL:tel records van de ene tabel en werk vervolgens een andere bij

  3. Mysql-opdracht niet gevonden in OS X 10.7

  4. mysql - INSERT datumbereik in datumkolommen ALS datums niet overlappen met bestaande