База данных конфликтов удалена - PullRequest
0 голосов
/ 13 июня 2018

Я не могу удалить своего пользователя.Когда я нажимаю удалить, я получаю следующую ошибку;

"FK_dbo.Environments_dbo.JobExperiences_JobExperienceId".Конфликт произошел в базе данных «DiplTestDb», таблице «dbo.Environments», столбце «JobExperienceId».

Я предполагаю, что я получаю сообщение об ошибке, так как окружение и опыт работы связаны и поэтому должны быть удаленыв то же время.Кто-нибудь, если это можно сделать с помощью fluentAPI или есть другое решение для этого.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Конкретная причина, по которой вы получаете исключение, заключается в том, что, как вы правильно предполагаете, существует связь внешнего ключа между пользователем и Environments.experienceId (отныне опыт).

Чтобы выполнить полное удаление по вашему запросу, вам нужно удалить строки опыта, имеющие отношение внешнего ключа к пользователю.

Скажем, вы хотите удалить пользователя: id 1, userEmail,test@useremail.com

Псевдокод:

DbContext context = new DbContext();
User forDeletion = context.Users.FirstOrDefault(x => x.id == 1);
context.Environments.Delete(x => x.User_Id == forDeletion.id);
context.SaveChanges();

Однако я бы настоятельно рекомендовал вам не делать этого.Вместо этого вы должны добавить в таблицу столбец с именем «selected_at» (может быть удаленный_by) как обнуляемый.Возвращать строки можно только тогда, когда значение параметраулиста равно нулю.

Это лучше для записи, когда и кем были удалены данные.

0 голосов
/ 13 июня 2018

Возникла проблема с ограничением целостности, означающая, что идентификатор пользователя использовался в другой таблице, и для таблицы есть ограничение внешнего ключа.

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