数据库保存的外键约束

Posted

技术标签:

【中文标题】数据库保存的外键约束【英文标题】:Foreign Key Constraint on database Save 【发布时间】:2021-11-03 23:16:19 【问题描述】:

我目前收到此错误消息:

INSERT 语句与 FOREIGN KEY 约束“FK_ViewDocumentAudit_UploadedDocuments”冲突。冲突发生在数据库“Butler”、表“dbo.UploadedDocuments”、列“Id”中。 声明已终止。

这是我的实体模型 - UserIdDocumentId 都是外键:

public partial class ViewDocumentAudit

    public long Id  get; set; 
    public long UserId  get; set; 
    public int DocumentId  get; set; 
    public System.DateTime DateAccessed  get; set; 

    public virtual UploadedDocument UploadedDocument  get; set; 
    public virtual user user  get; set; 

这是我正在向数据库中插入一条新记录:

public static void ViewDocumentAudit(long userId, int parsedDocumentId)

    using (Entities dbContext = new Entities())
    
         ViewDocumentAudit auditObject = new ViewDocumentAudit();
         auditObject.UserId = userId;
         auditObject.DocumentId = parsedDocumentId;
         auditObject.DateAccessed = DateTime.Now;

         dbContext.ViewDocumentAudits.Add(auditObject);
         dbContext.SaveChanges();
     

【问题讨论】:

可能 ID 为 parsedDocumentId 的文档在 UploadedDocuments 表中不存在。 @Llama 好的,谢谢。我指的是那个,但不确定。修复了我的问题。你的评论是正确的。 【参考方案1】:

“可能 ID 为 parsedDocumentId 的文档在 UploadedDocuments 表中不存在。” – 骆驼

【讨论】:

以上是关于数据库保存的外键约束的主要内容,如果未能解决你的问题,请参考以下文章

sql。两个间的外键约束和插入数据问题

Mysql的外键约束内外连接查询以及锁

Yesod / Persistent中的外键约束?

小议Oracle外键约束修改行为(一)

转储数据时的外键约束

创建外键时,phpmyadmin 中的外键约束失败