2010-02-23 2 views
0

Je travaille sur une application C# .NET 3.5 WCF RIA Services et j'ai un problème avec mon modèle Entity Framework.Comment dire quel nom les services RIA/modèle EF utilisent pour les associations?

Mon entité Foo est mappée à une table DB et possède une clé primaire appelée FooId. Ma barre est mappée à une vue DB. J'ai conçu cette vue de manière sélective pour générer une clé composite dans l'EF à l'aide de deux des colonnes (en vérifiant qu'elles ne sont pas NULL et que les autres sont toutes NULL.) Cela a été fait en utilisant NULLIF et ISNULL dans le design d'affichage.)

Je suis en mesure d'ajouter cette vue au modèle sans problème mais je continue de rencontrer un problème lorsque j'essaie de mapper une association entre les deux. Foo devrait contenir de nombreux bars mais je continue à obtenir l'erreur suivante quand j'ajoute l'association:

Impossible de récupérer AssociationType pour association « FK_Bar_Foo »

Selon this page, il semble que cela pourrait fonctionner si je peux nommer correctement l'association (puisque les services RIA recherchent des noms spécifiques). J'ai essayé plusieurs variantes de noms qui correspondent au modèle d'autres associations sans succès. Est-ce que quelqu'un sait s'il y a un endroit où je peux chercher pour savoir quel nom il cherche?

Merci,

Répondre

0

Après quelques recherches, j'ai trouvé une solution à la question here. Le problème avec cette solution est que vous devez le répéter chaque fois que le modèle est mis à jour, ce qui ne fonctionnera pas pour moi. Il semble que la version actuelle de l'EF ne supporte pas ce type de relation.

La solution que je suis finalement allé avec était de remodeler le client pour appeler indépendamment le service et demander une collection d'entité en passant la clé primaire (FooId) de mon type Foo. Ce n'est pas la meilleure approche (et nécessite beaucoup plus de codage manuel) mais cela fait l'affaire. J'espère que Entity Framework version 4 résout cette limitation.