2010-12-06 6 views
0

Ich arbeite an einer Silverlight-Anwendung mit RIA-Services mit Entitäten Framework.RIA Services erhalten Liste von Entitäten

Verzeihen Sie, ich bin ziemlich neu mit Ria-Diensten, aber wie gehe ich über eine Liste von Objekten aus der db, ohne eine Ladeoperation zu tun?

Beispiel: Ich habe eine Employees-Tabelle, in dieser Tabelle befindet sich ein IsSupervisor-Flag. Ich möchte eine Liste von Mitarbeitern in einem Gitter mit einer Combobox-Zelle anzeigen, die an eine Liste von Supervisoren gebunden ist (Mitarbeiter, bei denen isSupervisor = true ist).

Das Problem, das ich habe, ist, dass wenn die Liste der Supervisor zurückkommt, die Mitarbeiterliste nur Supervisors anzeigt.

Ich hoffe, das macht Sinn ....

Antwort

0

Es ist schwer, wirklich zu sagen, ohne den Code zu sehen, wie RIA Services verflixt flexibel ist.

Es klingt, als ob Sie ein DataGrid an das Employee EntitySet Ihres DomainContext binden und dann zwei Aufrufe an den Server senden, einen für alle Mitarbeiter und einen für Supervisor. Wenn dies der Fall ist, dann kann Ihr zweiter Aufruf den ersten löschen (abhängig davon, wie Sie LoadBehavior gesetzt haben).

Aber wenn Sie die db abfragen, um alle Mitarbeiter zu bekommen, dann haben Sie bereits die Supervisoren auf der Client-Seite. Erstellen Sie einfach eine separate Sammlung, die nur die Supervisoren enthält, und binden Sie die ComboBox an diese. Etwas wie:

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)); 
    } 
} 
Verwandte Themen