2011-08-03 4 views
1

내가이 상황에 맞는 패턴을 파악 도움이 필요의 여러 목록을 반환 wcf-. 첫 번째 콤보 상자에서 값을 선택하면 다음 번 콤보 상자에 대한 결과를 얻기 위해 서비스 호출이 만들어지고 활성화됩니다. 사용자가 다음 선택을하고 프로세스가 계속됩니다. 이것은 잘 작동합니다. 다음으로, 이미 사용자가 데이터를 가지고이 뷰로 돌아가는 경우와 각 콤보 박스에 이미 채워진 적절한 데이터가 주어진다.실버 4 RIA는 복잡한 객체

나는 데이터를 얻기 위해 하나씩 모든 전화를하고 싶지 않습니다. 이것은 낭비가되는 것 같습니다. 대신 한 번의 호출로 모든 데이터를 한 번에 반환하고 싶습니다. RIA WCF Services를 사용하여 이것을 달성하는 가장 좋은 방법은 무엇입니까?

내가 시도한 바가 있지만 기대했던대로 작동하지 않습니다.

A)는 I은, 서버 측에서 클래스를 만들어이 유형을

public partial class SelectionValues 
{ 
    public List<Series> SeriesList {get;set;} 
    public List<BaseModel> BaseModelList {get;set;} 
    public List<FullModel> FullModelList {get;set;} 
    public List<Program> ProgramList {get;set;} 
    public List<ExtendedWarranty> ExtendedWarrantyList{get;set;} 
} 

[in the service] 
/// <summary> 
/// This function does nothing, just exposes the SelectionValues type 
/// </summary> 
/// <returns></returns> 
public IQueryable<SelectionValues> getUnitSelectionValues() 
{ 
    throw new NotImplementedException(); 
} 

결과를 리턴 서비스하는 방법을 추가 : 클라이언트 측에서 생성 된 목록 없음.

B) 그래서 .Shared.cs를 클래스 파일에 추가하여 클래스가 클라이언트 측에서 동일하게됩니다. 그런 다음 필요한 데이터를 반환하는 Service 메서드를 작성했습니다. 코드는 작동하지만 SelectionValues ​​객체의 목록에있는 데이터는 클라이언트 측으로 전달되지 않습니다.

[Invoke] 
public SelectionValues GetValuesForExistingUnit(.....) 
{ 
    SelectionValues result = new SelectionValues(); 
    ... 
    return result 
} 

한 번에 복잡한 객체의 여러 목록을 반환하는 방법이 있나요, 아니면 서로 연결 여러 통화를 할 운명입니까?

답변

0

내가 알고있는 것에 대해 RIA 서비스는 DomainService의 엔티티 만 반환합니다. 나는 내 자신의 구조체를 되돌려 줄 필요가있는 비슷한 것을했다. 그 내부에 원하는 모든 목록을 가진 새 객체를 반환하는 간단한 WCF 서비스를 만들어이 시나리오를 해결했습니다.
개체가 Entityset에 없으므로 개체를 수정하고 RIA 서비스를 통해 서버로 다시 보내지 마십시오.