我无法删除我的用户。由于我按下删除我得到以下错误;
“FK_dbo.Environments_dbo.JobExperiences_JobExperienceId”。冲突 发生在数据库“DiplTestDb”,表“dbo.Environments”,列中 'JobExperienceId'。
我认为我得到了错误,因为环境和工作经验是相关的,因此必须同时删除。有没有人,如果这可以通过fluentAPI完成,或者是否有不同的解决方案。
答案 0 :(得分:2)
正如您所正确假设的那样,您获得异常的具体原因是用户和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();
但是,我会认真地建议你不要这样做。 您应该将名为“deleted_at”(可能是deleted_by)的表上的列添加为可为空。 仅当deleted_at为null时才返回行。
这样可以更好地记录删除数据的时间和人员。
答案 1 :(得分:0)
您有一个完整性约束问题,意味着用户的id已在另一个表中使用,并且该表上有一个外键约束。