0

Je construis une application avec ces modèles: Silverlight, RIA, EF, Prism, SL Unit Testing.Est-ce une bonne pratique d'avoir une table référencée par deux entités différentes?

Ce projet aura beaucoup d'entités et de nombreux modules faisant référence à ces entités. Chaque entité est dans sa propre bibliothèque de services RIA avec le service de domaine RIA et les métadonnées associées.

Je rencontre des problèmes lorsque je référence une certaine table dans deux entités différentes. Par exemple, la barre de la table existe dans entity1 et entity2.

Ma question: Est-ce une bonne pratique d'avoir la même table dans plusieurs entités (fichiers .edmx)?

Si oui, quels sont les bons moyens de les éviter provoquant une erreur de référence multiple?

Si ce n'est pas ce que je fais quand j'ai besoin de cette table dans une autre entité?

+0

Je ne comprends pas la question. C'est spécifiquement interdit par votre ORM. Pourquoi demander si c'est une bonne pratique? C'est interdit par l'outil que vous avez choisi, donc ça ne peut pas être une bonne pratique. Qu'est-ce que tu veux vraiment savoir? Voulez-vous savoir si vous avez choisi le mauvais outil? Voulez-vous savoir d'un autre outil permettra cela? C'est interdit, alors qu'est-ce que vous * demandez * vraiment? –

+0

Ce n'est pas vraiment interdit par l'EF, mais c'est compliqué à mettre en place correctement, et certainement pas une technique de débutant. Cela dit, la question dans le titre et le message d'erreur qu'il rapporte ne sont pas strictement liés, donc je pense qu'il y a plus de choses qu'il ne laisse faire. Je pense que cela aiderait s'il demandait quel problème il essayait réellement de résoudre au lieu de pourquoi sa tentative de solution. Pour commencer, "base de données simulée?" C'est presque une contradiction dans les termes! –

+0

@ Lott Il n'est en fait pas interdit. Je peux le faire très bien mais je rencontre des problèmes si jamais je dois référencer les deux différents services de domaine dans la même solution qui n'a pas eu lieu jusqu'à ce que j'ai essayé de se moquer d'une base de données. @Stuntz Le message d'erreur avait à faire avec quelque chose de différent mais seulement légèrement. C'était le fait que j'essayais d'utiliser une entité d'un edmx dans deux services de domaine différents (le réel et le faux). Mais la question ultime que j'ai toujours est. Depuis Lott a seulement posé des questions et n'a pas répondu à ma question. Les gens se moquent également de DB pour les tests unitaires. – johnnywhoop

Répondre

1

Normalement, lorsque vous commencez à utiliser EF (et la plupart des ORM), vous avez tendance à avoir une relation entité-par-table, ou au moins une relation table-> hiérarchie d'entités si vous avez hérité de vos entités.

Si vous essayez de faire référence à la même table à partir de 2 types d'entités distincts, vous devez probablement extraire un type d'entité unique partagé auquel vos autres entités se réfèrent.