2012-10-07 4 views
0

J'utilise Entity Framework 5.0 comme première approche avec Visual Studio 2012 Express. J'ai un scénario pour générer une clé étrangère Nullable. Par exemple, il existe deux entités: Organization et User. Tous les utilisateurs n'appartiendront pas à une organisation. Cependant, certains utilisateurs appartiendraient à une organisation. La colonne User.Organization_ID est toujours not null malgré la modification de la multiplicité. Aidez-moi s'il vous plaît à résoudre ce problème. Appréciez-le.Clé étrangère Null-able; Entity Framework 5.0 model-first

+0

"* malgré le changement de la multiplicité *" signifie que vous avez changé la multiplicité en "Null ou one to many", n'est-ce pas? Avez-vous cliqué sur la coche dans la boîte de dialogue d'association pour exposer une clé étrangère? Si oui, la clé étrangère de la classe d'entité générée est-elle valide ou non? – Slauma

+0

Merci Slauma. Je ne suis pas sûr de la case à laquelle vous faites référence. Je ne vois pas de case à cocher lorsque je double-clique sur l'association. – arasheed

+0

Ce n'est pas la boîte de dialogue lorsque vous double-cliquez sur l'association, mais sur la boîte de dialogue lorsque vous ajoutez une nouvelle association. – Slauma

Répondre

1
[ForeignKey("Organisation")] 
public int? Organisation_ID { get; set; } 

[ForeignKey("Organisation_ID")] 
public virtual Organisation Organisation { get; set; } 
+0

Veuillez noter que j'utilise l'approche Model First. Je ne suis pas sûr que ce qui précède s'applique au modèle en premier. S'il vous plaît laissez-moi savoir où dois-je faire ce changement pour l'approche du modèle d'abord? – arasheed

+0

La clé est le point d'interrogation dans 'int?'. Cela rend la clé étrangère et nullable et cela permet une relation un à plusieurs facultative. – Dabblernl

+0

@flem Non, 1-0 .. *, ou 0..1-0 .. * relation, ou dans le discours: relation un à zéro ou plus ou une relation zéro ou un à zéro ou plus. – Dabblernl

5

La modification de la multiplicité 0..1 -> * (many) a résolu ce problème. c'est-à-dire que 0 ou 1 organisation peut avoir 0 ou plusieurs utilisateurs. De cette façon, organizatio_id dans la table utilisateur est généré comme une colonne nullable! Merci à tous pour votre aide!

Questions connexes