2010-12-06 2 views
0

엔티티 프레임 워크를 사용하여 RIA 서비스를 사용하는 Silverlight 응용 프로그램을 작성하고 있습니다.RIA 서비스가 엔티티 목록을 얻습니다.

나를 용서해주십시오. 나는 Ria 서비스에 대해 상당히 새로운 사람입니다. 그러나로드 작업을 수행하지 않고 db의 객체 목록을 얻으려면 어떻게해야합니까?

예 :이 테이블에는 직원 테이블이 있습니다.이 테이블에는 IsSupervisor 플래그가 있습니다. 나는 수퍼바이저 (isSupervisor = true 인 직원)의 목록에 묶인 콤보 박스 셀을 사용하여 그리드에 직원 목록을 표시하려고합니다.

내가 가진 문제는 수퍼바이저 목록이 돌아 왔을 때 직원 목록에 감독자 만 표시된다는 것입니다.

나는이 말이 바랍니다 ....

답변

0

은 RIA 서비스는 무척 유연 진짜로, 코드를 보지 않고 말을하기 어렵다.

DomainContext의 Employee EntitySet에 DataGrid를 바인딩 한 다음 모든 직원을 확보 한 다음 감독자를 얻는 두 번 서버를 호출하는 것처럼 들립니다. 이 경우 두 번째 호출은 첫 번째 호출을 제거 할 수 있습니다 (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)); 
    } 
}