Конкретная причина, по которой вы получаете исключение, заключается в том, что, как вы правильно предполагаете, существует связь внешнего ключа между пользователем и 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) как обнуляемый.Возвращать строки можно только тогда, когда значение параметраулиста равно нулю.
Это лучше для записи, когда и кем были удалены данные.