2009-12-10 18 views
2

Une petite question sur le nouveau WCF Ria beta:Services WCF RIA, EntitySet toujours vide?

Si je le fais dans le code-behind:

EntitySet e = MyContext.Employees

Il semble que le EntitySet est toujours vide à runtime? C'est à dire. si je veux faire une boucle à travers l'entité entityset.

De plus, si j'obtiens l'énumérateur pour le jeu d'entités, j'obtiendrai une erreur m'indiquant que l'énumérateur est vide ou n'a pas encore démarré. Y a-t-il moyen de saisir une collection d'entités du contexte et de les parcourir?

Merci d'avance!

Répondre

5

Avez-vous vérifié dans le Complété événement rappelé? N'oubliez pas que dans Silverlight, tous les appels sont asynchrones. Même si vous voyez un exemple de code où le ItemsSource est affecté avant le rappel, il s'appuie sur le fait que Employees est un ObservableCollection pour la liaison de données.

LoadEmployeeCommand() 
{ 
    // The Load method initiates the call to the server 
    LoadOperation<Employee> loadOperation = domainContext.Load(domainContext.GetEmployeesQuery()); 
    // The EntitySet is still empty at this point 
    employeeDataGrid.ItemsSource = domainContext.Employees; 
    loadOperation.Completed += EmployeeLoadOperationCompleted; 
} 

private void EmployeeLoadOperationCompleted(object sender, EventArgs e) 
{ 
    // Don't need to reassign now but at this point the collection should be populated 
    employeeDataGrid.ItemsSource = domainContext.Employees; 
} 
+0

Salut Martin, désolé pour le commentaire différé ici. Même si j'utilise l'événement terminé, il ne déclenche pas du tout. Il saute simplement le loadOperation.Completed et s'arrête là. Ne devrais-je pas être en mesure d'entrer dans la méthode terminée? Merci encore :) – bomortensen

+0

Je définirais un point de rupture séparé dans le gestionnaire d'événements terminé, car "avancer" dans celui-ci n'a pas de sens lorsqu'il est asynchrone. Pourvu que vous atteigniez le point d'arrêt, vous pouvez vérifier la propriété LoadOperation.HasError et LoadOperation.Error si elle est définie. –