J'ai suivi 2 cours.
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; }
}
Maintenant, ces 2 classes sont analysées à partir de json. les deux identifiants sont donc 0, car il ajoute (et non met à jour).
Quand je fais ci-dessous.
projectContext.SaveChanges();
Il donne l'erreur ci-dessous, comment les ajouter à la fois dans une seule déclaration. ou faudra-t-il ajouter séparément?
SqlException: l'instruction INSERT est en conflit avec la contrainte FOREIGN KEY "FK_Query_QueryGroup". Le conflit s'est produit dans la base de données "Projet", table "dbo.QueryGroup", colonne 'Id'.
Si vous essayez d'insérer des données dans Query, vous devez avoir des données avec ForeignKey dans la table QueryGroup pour pouvoir ajouter des données aux deux tables, puis SaveChanges
Selon le conflit que vous avez mentionné, voici mon opinion:
Si vous avez une table A ayant une clé étrangère dans la table B , alors lors de l'ajout d'un enregistrement à la table A, la valeur de la clé étrangère doit exister dans la table B. Si la valeur de clé étrangère n'existe pas dans le tableau B, l'exception SqlException mentionnée ci-dessus se produit.
Par conséquent, vous devez d'abord ajouter des données au tableau B , puis au tableau A. Vous pouvez créer une seule transaction sql pour cela.