2010-12-06 50 views
0

Je travaille sur une application Silverlight en utilisant les services RIA avec Entities Framework. Pardonnez-moi, je suis assez nouveau avec les services Ria, mais comment puis-je obtenir une liste d'objets à partir de la base de données sans faire une opération de chargement? Exemple: J'ai une table Employees, dans cette table il y a un indicateur IsSupervisor. Je souhaite afficher une liste d'employés dans une grille avec une cellule de liste déroulante liée à une liste de superviseurs (employés où isSupervisor = true). Le problème que j'ai, c'est que lorsque la liste des superviseurs revient, la liste des employés n'affiche que les superviseurs.RIA Services obtenir la liste des entités

J'espère que ce sens ....

Répondre

0

Il est difficile de dire vraiment sans voir votre code, comme RIA Services est sacrément flexible.

Il semble que vous liez un DataGrid à Employee EntitySet de votre DomainContext, puis faites deux appels au serveur, un pour obtenir tous les employés, puis un pour obtenir des superviseurs. Si c'est le cas alors oui votre deuxième appel peut effacer le premier (dépend de la façon dont vous avez défini LoadBehavior). Mais si vous interrogez la base de données pour obtenir tous les employés, alors vous avez déjà les superviseurs du côté client. Créez simplement une collection séparée qui ne contient que les superviseurs, et liez le ComboBox à ceci. Quelque chose comme:

private void OnEmployeesLoaded(LoadOperation<Employee> loadOp) { 
    if(!loadOp.HasError) { 
     Employees = new List<Employee>(loadOp.Entities); 
     Supervisors = new List<Employee>(loadOp.Entities.Where(e => e.IsSupervisor)); 
    } 
}