2009-11-19 5 views
44

Utilisation de VS 2010 beta 2, ASP.NET MVC.Problèmes de mappage unidirectionnel d'un framework d'entité

J'ai essayé de créer un fichier de structure Entity et j'ai récupéré les données de ma base de données.

Il y avait quelques problèmes avec les relations, donc j'ai commencé à modifier les choses, mais je continué à obtenir l'erreur suivante pour de simples one-to-one relations

Erreur 1 Erreur 113: Multiplicité est pas valide dans Role 'UserProfile' dans la relation 'FK_UserProfiles_Users'. Comme les propriétés du rôle dépendant ne sont pas les propriétés clés, la limite supérieure de la multiplicité du rôle dépendant doit être *. myEntities.edmx 2024

Ma table Les utilisateurs est constitué de nombreux autres à plusieurs relations avec d'autres tables, mais lorsque je tente de faire une à une relation avec d'autres tables, cette erreur apparaît.

Tableau des utilisateurs

  • UserID
  • Nom d'utilisateur
  • Email

etc ..

UserProfiles Tableau

  • UserProfileID
  • UserID (FK pour les utilisateurs Table)
  • Lieu
  • Anniversaire

Répondre

65

Pour un à-un, EF prévoit que les tables utilisent la même clé primaire. Et vraiment, si c'est un vrai one-to-one, ils devraient probablement devrait. Donc, dans votre exemple, si vous faites de UserID la clé primaire dans la table UserProfiles, votre one-to-one fonctionnera.

+12

J'ai eu ce problème en essayant de configurer une relation de 0..1 à 1 entre une table principale et une table d'extension. L'extensiontable comme beaucoup d'autres relations donc je ne veux pas jouer avec le PK de celui-là. Des idées pour résoudre ce type de situation? – Andreas

+1

@junior: il s'agit d'une relation de clé étrangère et vous pouvez y accéder en sélectionnant la relation, en entrant dans les propriétés et en modifiant les paramètres "End1 Multiplicity" et "End2 Multiplicity" (pas sûr que ce soit uniquement VS 2010). Très probablement, vous définirez "End2 Multiplicity" sur "0..1". –

+0

Il n'y a pas de * "should" *, même si EF ne peut pas gérer correctement les multiplicités RA normales et donc force une conception de RA parfaite à changer. Cela n'implique pas * que le modèle devrait être changé, le cas actuel de côté - signifie que EF, et il semble toujours cassé aujourd'hui, devrait être * fixé * pour modéliser correctement le domaine de base de données RA. – user2864740

10

J'ai un problème similaire, mais avec un scénario de vente et de mise en attente.

Un layby peut exister sans vente, et une vente peut exister sans layby. Cela signifie que j'ai une relation 0 ou 1 à 0 ou 1.

Layby référence la vente, mais layby ne peut pas utiliser la clé primaire de Sale, et Sale ne peut pas utiliser la clé primaire de Layby.

je résolu le problème en utilisant un 0 ou 1 à beaucoup relation, configuré le getter « Laybys » et régleurs sur la vente en privé, puis fourni mon propre getter « Layby » et poseur dans mon POCO .

+3

Je suis curieux, avez-vous déjà trouvé une meilleure façon de capturer ce genre de relation? – Hannele

Questions connexes