C #: я получаю «MySqlException: не могу добавить или обновить дочернюю строку: ограничение внешнего ключа не удается», когда я добавляю объект в мою базу данных - PullRequest
0 голосов
/ 25 января 2019

Хорошо, ребята, Это абсолютно странно. Итак, я получаю данные игровой информации из IGDB и сохраняю их в своей базе данных всякий раз, когда пользователь нажимает на них, чтобы просмотреть дополнительную информацию об игре.

Дайте больше деталей: У меня есть объектная модель, называемая «Игра», в которой содержатся такие свойства, как имя, рейтинг, популярность, обложка, снимки экрана, видео и т. Д., А также другие свойства навигации.

Game Model

А это моя модель обложки. Причина, по которой я показываю модель обложки, заключается в том, что она играет роль в ошибке ... Я думаю .. Модель обложки имеет внешний ключ gameId и другие свойства.

Cover model

Итак, теперь вы знаете, что между «игрой» и «прикрытием» существует отношение один к одному. То есть одна игра может иметь одну обложку.

Теперь проблема: Когда я нажимаю «большинство» игр, все работает нормально, игры вставляются и обложки тоже.
НО НО .. Есть одна игра (насколько я знаю), что, когда я нажимаю на нее, я получаю эту ошибку:

MySqlException: невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (gamerater_db. covers, CONSTRAINT FK_Covers_Games_gameId FOREIGN KEY (gameId) ССЫЛКИ games (gameid) НА УДАЛИТЬ КАСКАД )

Насколько я знаю это единственный, который дает такую ​​ошибку. (База данных API довольно большая)

Итак, вы можете понять, почему это странно ... Большая часть игры сохраняется должным образом, но именно этот дает эту ошибку ... Имейте в виду, поскольку, насколько я знаю, это единственный, который дает эту ошибку .

Итак, буквально, я не знаю, где может быть ошибка. Когда я отлаживаю журнал, игра, которая выдает мне эту ошибку до , она вставляется, идентификатор игры есть, и другие свойства, такие как имя, рейтинг, популярность, сводка, user_id, first_release_date и т.д ... также присутствуют.

This is the models before i insert them in the database

Сохранение игровой модели работает для других, но не для этого конкретного .. Почему ??? Все то же самое .. любое понимание было бы полезно ..

1 Ответ

0 голосов
/ 31 января 2019

Так что получилось, что в Game Model уже была модель Cover, поэтому C # просто автоматически добавил модель Cover в базу данных, когда я пытался просто добавить Game Model в базу данных. А потом, когда я пытался добавить обложку, она не работала, потому что она уже была вставлена ​​автоматически, когда я добавил модель игры в базу данных. Это заставило меня понять C # больше

...