2011-01-27 7 views
1

Je me demande s'il est possible de mapper une relation m: n dans la base de données deux fois dans un modèle EF4.Mappage d'une relation m: n deux fois

Tenir compte de ce modèle de base de données:

http://andarki.dk/stackoverflow/db.png

Il est une norme m: n relation entre les entreprises et les utilisateurs. Si le works_at.is_locked_out de champ est ignoré lors de la génération de modèle, il génère un beau * à * relation EF:

http://andarki.dk/stackoverflow/pretty.png

Si je works_at.is_locked_out activer il ressemble plus au schéma db d'origine:

http://andarki.dk/stackoverflow/detailed.png

Est-il possible d'avoir les deux relations à la fois? Pour certaines requêtes, works_at.is_locked_out n'est pas nécessaire et le fait d'avoir le lien direct facilite la requête dans ces cas. Quand je COMBINEZ les relations que je reçois l'erreur

Problem in mapping fragments starting at lines 23, 30:Two entities with possibly different keys are mapped to the same row. Ensure these two mapping fragments map both ends of the AssociationSet to the corresponding columns. 
TestModel.edml 

Est-ce de quelque façon possible ou est-ce un cas de moi d'essayer d'avoir mon gâteau et le manger aussi?

Répondre

0

Les deux à la fois n'est pas possible comme vous le voyez avec l'erreur qui vous est présentée. This article by Julie Lerman expliquera beaucoup, sinon tous. Et je pense que vous devriez aller pour l'alternative 2, parce que comme vous l'avez dit, il n'est pas toujours nécessaire, mais parfois (ou dans un proche avenir) il est. Ce champ n'est pas là sans but je suppose ...;) Bonne chance!

Questions connexes