2

J'ai une application Silverlight qui nécessite beaucoup de données pour fonctionner et qui nécessite tout cela dès le départ. Il utilise RIA Services (et Entity Framework) pour obtenir toutes ces informations. Il faut 10-15 secondes pour obtenir toutes les données, mais les données ne changent qu'une fois par mois. Ce que je voudrais faire est de jeter ces données dans le stockage isolé de sorte que la prochaine fois qu'ils chargeront l'application, je peux simplement l'attraper, voir si elle est mise à jour, et sinon utiliser ces données qu'ils ont déjà obtenu et économiser une tonne de temps en envoyant des choses sur le fil.Entités de sérialisation avec les services RIA

La structure du graphique que je dois stocker est (plus ou moins) une structure arborescente typique. Un modèle a des composants, un composant a des caractéristiques, une fonctionnalité a des options. Le problème auquel je suis confronté est que lorsque je demande que cette entité racine (le modèle) soit sérialisée, elle ne fait que sérialiser l'objet de premier niveau et ignore tous les objets "enfants".

Est-ce que quelqu'un connaît un moyen pratique de l'amener à sérialiser/désérialiser le graphique entier?

Répondre

0

Si les services RIA est le problème, alors je pourrais avoir un indice.

Transférer des collections d'objets à travers RIA vous devez faire un peu de peaufinage du modèle de domaine. Disons que vous avez un reçu avec une liste de ReceiptEntries. Alors tu ferais ça.

public Receipt { 
    public guid Id; 
    public List<ReceiptEntry> Entries; 
} 


public ReceiptEntry { 
    public guid ReceiptId; 
} 

Vous devez indiquer à RIA comment associer ces objets.

[Include()] 
[Composition()] 
[Association("ReceiptEntries", "Id", "ReceiptId"] 
public Receipt { 
    public guid Id; 
    public List<ReceiptEntry> Entries; 
} 

Ensuite, il sérialisera la liste des objets.

Je pourrais écrire une syntaxe bizarre parce que je suis habitué à VB.net ou que j'ai quelques failles mineures dans l'exemple de code, je l'ai juste lancé. Mais si le problème est que RIA n'envoie pas les objets de la façon dont ils sont bloqués, alors vous devriez étudier ce scénario. Si vous n'avez pas déjà.

+2

Malheureusement, RIA Services me donne les objets dont j'ai besoin, donc pendant que l'application est en cours d'exécution j'ai accès au graphe entier, mais quand j'essaie de sérialiser le graphe, il saisit uniquement l'objet de niveau supérieur. :( Je vous remercie d'avoir pris le temps d'aider, cependant! –