Clés uniques non reconnues par Entity Framework
-
22-09-2019 - |
Question
J'ai deux tables, Reports
et Visualizations
. Reports
a un champ, VisualizationID
, qui pointe vers le champ de Visualization
du même nom par une clé étrangère. Il a également une clé unique déclarée sur le terrain. VisualizationID
n'est pas annulable. Cela signifie que la relation doit être 0..1 à 1, parce que tous record Reports
doit avoir un dossier de Visualizations
unique, non nul associé.
Le Entity Framework ne le voit pas de cette façon. Je reçois l'erreur suivante:
Error 113: Multiplicity is not valid in Role 'Report' in relationship 'FK_Reports_Visualizations'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *.
Quel est le problème ici? Comment puis-je faire l'EF reconnaître la multiplicité de relation appropriée?
La solution
L'EF se plaint car il semble que vous utilisez un FK Association - ce qui signifie que le VisualizationID est une propriété de l'entité et il est une référence de visualisation trop -. Et vous ne pouvez pas le faire avec FK associations
Si toutefois vous utilisez des associations indépendantes - ce qui signifie qu'il n'y a pas de propriété VisualizationID -. Vous peut réduire la cardinalité
Donc, la solution est de supprimer la propriété VisualizationID de l'entité, à quel point vous devez aller de l'avant une carte l'association.
Hope this helps
Alex
Autres conseils
Je viens de tombé sur le même problème - Alex, votre explication est correcte dans mon cas, mais bien sûr, en supprimant la colonne FK du modèle conceptuel, je n'ai plus la possibilité de passer plus tard mon objet associé en changeant la valeur du champ FK ... Je vais devoir revenir aux vieux trucs à faire!
Y at-il des plans pour nous permettre d'avoir notre part du gâteau et le manger aussi avec 1 à 0..1 relations, à savoir être en mesure d'avoir le champ FK ainsi?
Greg
(p.s. Je l'ai commenté, mais mon représentant n'est pas encore assez haut!)