Basi c проблема с внешним ключом при попытке вставить запись - PullRequest
0 голосов
/ 09 апреля 2020

Я связал 3 таблицы:

[T_User]

AUsr_ID [PK] | AUsr_LogonID | AUsr_UserDisplayName
-------------+--------------+---------------------
    417      | VI00IV       | John Doe

[T_ApplicationRoles]

Role_ID [PK] | Role_Name    | Role_Description
-------------+--------------+--------------------------
    6        | Default Role | Default Role Attributed

[T_ApplicationRolesUsers]

RoUs_ID [PK auto-incremented] | RoUs_Role_ID [FK] | RoUs_ApUs_ID [FK]
------------------------------+-------------------+------------------
          1                   |         6         |        417

Я вручную вставляю строку в T_ApplicationRolesUsers, и все прошло хорошо.

Когда я пытаюсь вставить ту же строку в C#, я получаю ошибку:

Это значения, которые я пытаюсь вставить в T_ApplicationRolesUser:

 UserRoleToAdd.RoUs_Role_ID = 417;
 UserRoleToAdd.RoUs_ApUs_ID = 6;

И вот эта ошибка, которую я получаю:

Оператор INSERT конфликтовал с ограничением FOREIGN KEY "FK_T_ApplicationRolesUsers_T_ApplicationRoles".
Конфликт произошел в базе данных "DBS", таблица "dbo.T_ApplicationRoles", столбец "Role_ID".

1 Ответ

0 голосов
/ 09 апреля 2020

Вы пытаетесь вставить что-то для Role_ID 417 - эта роль существует? из предоставленных вами таблиц не , если бы мне пришлось рисковать, я бы предположил, что у вас 417 и 6 неправильно.

Вместо:

 UserRoleToAdd.RoUs_Role_ID = 417;
 UserRoleToAdd.RoUs_ApUs_ID = 6;

Я думаю, что вы хотели иметь:

 UserRoleToAdd.RoUs_Role_ID = 6;
 UserRoleToAdd.RoUs_ApUs_ID = 417;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...