54 votes

Comment définir correctement une association entre deux objets dans Entity Framework 4 Entitydesigner?

Pour un nouveau projet que je suis en train de créer mon entreprise en classes de première et de créer le véritable tables de base de données plus tard. Donc je suis en utilisant Entity Framework 4 Designer. Un créé un nouveau "ADO.Net modèle de Données d'Entité" fichier avec l'extension .edmx.

J'ai créé deux Entités:
alt text

Je veux ajouter un 1 à nc relation entre Produit -> Groupe. Si j'avais créé le MSSQL base de données tout d'abord, j'aurais ajouté une colonne IDGroup à la Table Produit et de Produits de référence.IDGroup de Groupe.IDGroup. Aussi loin que je peux voir, je ne peux pas ajouter cette association dans le concepteur si j'ajoute une nouvelle Propriété nommée IDGroup de l'Entité Product

C'est de cette façon-je ajouter de la cartographie: alt text

Qui se traduit par:
alt text

Maintenant la partie que cette question est au sujet: Si j'ajoute deux tables à partir d'une existante, MSSQL base de données pour le fichier edmx, je vais chercher le message d'erreur de compilation:

Error 3027: No mapping specified for the following EntitySet/AssociationSet - GroupSet, ProductSet

Que signifie cette erreur et que dois-je faire pour résoudre ce problème? Si je supprime ces deux tables, je vais recevoir un avertissement à la place:

Error 2062: No mapping specified for instances of the EntitySet and AssociationSet in the EntityContainer myContainer.

Quelque chose me dit, je fais tout faux et c'est juste un truc de base. Comment puis-je faire?

85voto

Jason Jarrett Points 1570

Je me suis heurté à cela moi-même et quand je l'ai cherché sur Google (j'ai posé votre question).

J'ai pu double-cliquer sur la ligne (ligne d'association) dans le concepteur. Remplissez les propriétés là-bas et je le fais fonctionner.

J'ai aussi dû fermer VS et le rouvrir pour que certaines des erreurs signalées disparaissent ...

Je ne peux pas dire que c'est la bonne réponse - il suffit de tâtonner et de chercher à obtenir des résultats.

9voto

pabbie Points 91

Ce qui pourrait être facile à manquer est de générer la base de données à partir du modèle . D'après ce que je comprends, cela doit être exécuté après chaque modification apportée à la base de données .edmx.

Cette simple erreur m'est arrivée et a mené la frustration pendant quelques minutes =)

6voto

Steve Davies Points 287

J'ai eu cette erreur quand j'ai généré le modèle de la base de données à l'aide de la ADO.Net DBContext Générateur de sous VS2010 SP1 avec EF4.1 installé. La base de données j'ai été en utilisant n'avait PAS toute l'intégrité référentielle entre le primaire et le champs de clé étrangère.

La solution était à double-cliquer sur l'association de la ligne qui affiche le Référentiel Contstrainst boîte de dialogue. J'ai ensuite mis la partie Principale du champ à la table avec la clé primaire, la charge que le tableau avec les clés étrangères, de définir les noms des clés étrangères de correspondance dans la liste déroulante et en cliquant sur le bouton OK.

Le code compilé et j'ai été en mesure de travailler à travers les entités à l'aide de var étrangère = DBContext.Primaire.(Premier).L'étranger etc

Steve

3voto

Jon Dewees Points 1794

J'ai eu la même erreur, et un peu de configuration que la boîte de dialogue "Ajouter une association" ne m'a pas aidé à définir est la propriété "Contrainte référentielle". Une fois configuré, j'ai reconstruit la solution et tout était cool.

0voto

jburka Points 101

J'ai eu cette erreur lorsque j'ai supprimé une association du diagramme de modèle, mais celle-ci reste dans le XML sous-jacent du .edmx. Le seul moyen que j’ai trouvé pour résoudre ce problème est de modifier manuellement edmx pour supprimer les références à l’association en cause.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X