2010-12-06 10 views
0

エンティティフレームワークでRIAサービスを使用してSilverlightアプリケーションを開発しています。RIAサービスはエンティティの一覧を取得します

私はRiaサービスでかなり新しいですが、ロード操作を行わずにdbからオブジェクトのリストを取得するにはどうすればよいですか?

例:この表には、従業員テーブルがあり、このテーブルにはIsSupervisorフラグがあります。私は、スーパーバイザ(isSupervisor = trueの従業員)のリストにバインドされたコンボボックスセルを持つグリッド内の従業員のリストを表示したい。

問題は私が持っているのは、スーパーバイザーのリストが戻ってくると、その従業員リストにはスーパーバイザーしか表示されないということです。

私は、これは理にかなって願っています....

答えて

0

RIAサービスはかなりくそ柔軟性があるとしてそれは、本当にあなたのコードを見ずに言うのは難しいです。

DomainContextのEmployee EntitySetにDataGridをバインドしてから、サーバーに2つの呼び出しを行い、1つはすべての従業員を取得し、もう1つは監督者を取得するように思えます。これが当てはまる場合は、2番目の呼び出しで最初の呼び出しを取り除くことができます(LoadBehaviorがどのように設定されているかによって異なります)。

しかし、すべての従業員を取得するためにdbを照会する場合は、すでにクライアント側にスーパーバイザがあります。スーパーバイザのみを含む別のコレクションを作成し、ComboBoxをこれにバインドします。次のようなもの:

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)); 
    } 
} 
関連する問題