2010-09-17 2 views
1

Je rencontre un problème où RIA Services renvoie 3 entités du serveur (j'ai vérifié lors du débogage sur le processus du serveur, et j'ai vérifié via Fiddler que le service est face retour 3 entitésServices RIA: le processus serveur renvoie plusieurs entités mais le client affiche 1 entité dupliquée

J'utilise MVVM donc je fais appel de charge sur le côté client à l'aide d'une fonction d'aide que j'ai emprunté à un échantillon Shawn Wildermuth. Voici ce code:

// Generic query handling 
    protected void PerformQuery<T>(DomainContext dc, string name, EntityQuery<T> qry, EventHandler<EntityResultsArgs<T>> evt) where T : Entity 
    { 
     dc.Load<T>(qry,(r) => 
     { 
      if (evt != null) 
      { 
       try 
       { 
        if (r.HasError) 
        { 
         evt(this, new EntityResultsArgs<T>(r.Error)); 
        } 
        else if (r.Entities.Count() > 0) 
        { 
         evt(this, new EntityResultsArgs<T>(r.Entities)); 
        } 
       } 
       catch (Exception ex) 
       { 
        evt(this, new EntityResultsArgs<T>(ex)); 
       } 
      } 
     }, null); 
    } 

EntityResultsArgs est une classe simple qui expose une propriété d'exception (appelée Error) et une propriété Results (containi ng les résultats si nous en avons).

Sur le serveur, nous mappons le résultat en utilisant AutoMapper à nos classes de domaine exposées et cet appel de service particulier renvoie IEnumerable.

Qu'est-ce qui me manque (ou qu'est-ce qui pourrait aider quelqu'un à comprendre)?

Merci!

+1

Vérifiez votre définition PK et assurez-vous que les services RIA savent quelle colonne est unique. –

+0

BTW, quand j'ai mis un point de rupture sur le "evt (this, new EntityResultsArgs (r.Entities));" ligne je reçois 3 résultats tous les dups. Si je place un point d'arrêt sur la propriété name de l'entité générée RIA Services, je vois que toutes les données sont définies .. (mais je me retrouve avec 3 dups au lieu de 3 enregistrements distincts) – DevTheo

+0

L'attribut clé est placé sur le bon champ – DevTheo

Répondre

2

Oui, le problème est maintenant confirmé. Je récupérais 3 entités du service tout avec un Id (aka la valeur "[Key]") de 0.

Questions connexes