2009-11-09 3 views
0

J'avais une connexion qui fonctionnait mais quelque chose a changé et maintenant les données n'apparaissent pas. C'est une requête simple qui a fonctionné avant que cela ne renvoie juste toutes les entités. Je mets des points de rupture sur l'appel LoadOperation et il se déclenche et obtient 0 entités. Je mets également un point d'arrêt sur le service lui-même, et il ne se casse pas avant l'évaluation de LoadOperation. Une fois l'opération LoadOperation terminée, la requête de service est appelée ... bien après que nous ayons eu besoin des données. La seule chose que je peux penser à cela pourrait être un problème est que j'ai ajouté 2 services WCF à la solution. Les services de la WCF empêcheraient-ils le RIA de fonctionner? Des idées sur quoi d'autre pourrait causer le problème?Données ne provenant pas de RIA Services dans Silverlight

Client:

LoadOperation<Project> loadOp = 
       this._projectContext.Load(this._projectContext.GetProjectsQuery()); 

Service:

public IQueryable<Project> GetProjects() 
{ 
    return this.Context.Projects; 
} 

Voir, véritable base, mais ne fonctionne pas.

Répondre

1

Vous devez placer une méthode de rappel sur votre opération de chargement, puis vérifier les résultats de l'erreur LoadOperation.Error à son retour. Dans cette erreur, vous trouverez l'exception qui vous permettra de savoir quel est le problème (vous devrez probablement vérifier l'exception interne pour obtenir tous les détails).

+0

Si j'utilise le rappel, alors il renvoie les entités. Sup avec ça? –

+0

La charge est une opération asynchrone. Ainsi, lorsque vous appelez Load, les objets ne sont pas là, même quand il revient. Une fois que le rappel est déclenché, les objets seront là. – Bryant

+0

Oui, j'ai commencé à voir ça, je suis juste curieux de savoir comment ça fonctionnait avant. J'ai vu les données peupler dans mon application Silverlight sans rappel. –