簡體   English   中英

INSERT 語句與實體框架核心中的 FOREIGN KEY 約束沖突,單個語句中有 2 個表

[英]The INSERT statement conflicted with the FOREIGN KEY constraint in Entity framework core, 2 tables in single statement

我有以下2節課。

public partial class Query
{
    public int Id { get; set; }
    public virtual QueryGroup QueryGroup { get; set; }
}


public partial class QueryGroup
{
    public int Id { get; set; }
    public virtual ICollection<Query> Query { get; set; }
}

現在這兩個類是從 json 解析出來的。 所以兩個 Id 都是 0,因為它正在添加(不更新)。

當我在下面做。

projectContext.SaveChanges();

它給出了以下錯誤,如何在單個語句中添加它們。 還是需要單獨添加?

SqlException: INSERT 語句與 FOREIGN KEY 約束“FK_Query_QueryGroup”沖突。 沖突發生在數據庫“Project”、表“dbo.QueryGroup”、“Id”列中。

根據你提到的沖突,以下是我的看法:

如果表A具有表B的外鍵,則在向表A 中添加記錄時,表B 中必須存在外鍵值。 如果表B中不存在外鍵值,則發生上述 SqlException。

因此,您需要先將數據添加到表B 中,然后再將數據添加到表A 中 您可以為此創建單個 sql 事務。

如果您嘗試將數據插入Query ,則表QueryGroup 中必須有帶有 ForeignKey 的數據,以便您可以將數據添加到兩個表,然后SaveChanges

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM