J'ai un modèle User
< Country
. Un utilisateur appartient à un pays, mais ne peut en appartenir à aucun (clé étrangère nulle).
Comment configurer cela? Lorsque j'essaie d'insérer un utilisateur avec un pays nul, cela me dit qu'il ne peut pas être nul.
Le modèle est le suivant:
public class User{
public int CountryId { get; set; }
public Country Country { get; set; }
}
public class Country{
public List<User> Users {get; set;}
public int CountryId {get; set;}
}
Erreur: A foreign key value cannot be inserted because a corresponding primary key value does not exist. [ Foreign key constraint name = Country_Users ]"}
entity-framework
mapping
ef-code-first
foreign-key-relationship
entity-framework-4.1
Shawn Mclean
la source
la source
Réponses:
Vous devez rendre votre clé étrangère Nullable:
la source
if
(eww)Guid
clés basées. (Cela les rend nullables, bien sûr, mais l'enregistrement d'un enregistrement dans la base de données avec la clé étrangère définie sur null échoue en raison d'une contrainte de clé étrangère générée automatiquement.) :-(Je préfère ceci (ci-dessous):
Parce qu'EF créait 2 clés étrangères dans la table de base de données: CountryId et CountryId1, mais le code ci-dessus a corrigé cela.
la source
J'ai le même problème maintenant, j'ai une clé étrangère et je dois la mettre comme nullable, pour résoudre ce problème, vous devez mettre
dans la classe DBContext, je suis désolé de vous répondre très tard :)
la source
Je recommande de lire le guide Microsoft pour l'utilisation des relations, des propriétés de navigation et des clés étrangères dans EF Code First, comme cette image.
Lien du guide ci-dessous:
https://docs.microsoft.com/en-gb/ef/ef6/fundamentals/relationships?redirectedfrom=MSDN
la source