Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mehrere hinzugefügte Entitäten können denselben Primärschlüssel im Datenbank-Seed haben

In Ihrer Bearbeitung erwähnen Sie "Mehrere hinzugefügte Entitäten können denselben Primärschlüssel haben". Error. Ohne alle Details dessen zu kennen, was Sie hier tun, klingt es so, als würden Sie eine Beziehung mit einer Entität erstellen – von der es zwei im Kontext mit derselben ID gibt. Dies sind wahrscheinlich neue Entitäten, die noch nicht gespeichert wurden, und erhalten dort eine automatisch generierte ID aus der Datenbank. Wenn die Beziehung auf der ID basiert, gibt es eine gewisse Mehrdeutigkeit, weil Entity Framework nicht bestimmen kann, auf welche der neuen Entitäten die Beziehung tatsächlich zeigt – sie haben beide die ID, auf die die Beziehung zeigt.

Es gibt zwei mögliche Lösungen.

  1. Generieren Sie eine temporäre, eindeutige Kennung für Entitäten, wenn sie im Kontext erstellt werden. Entity Framework verwirft dies, wenn die Entität gespeichert wird, aber bis zu diesem Zeitpunkt kann es es verwenden, um eine neue Entität von der anderen zu unterscheiden. Ich habe für diesen Zweck in der Vergangenheit negative Ganzzahlen verwendet.

  2. Erstellen Sie die Beziehungen nicht über IDs, sondern über Entitätsreferenzen. Wenn Entity Framework einen direkten Verweis auf die Entität hat, muss es nicht den Prozess der Identifizierung der Entität basierend auf nicht eindeutigen Bezeichnern durchlaufen und sollte dieses Problem nicht haben.