하나의 호출에서 여러 개의 작은 LoadOperations를 체인/중첩하지 않고 여러 RIA 엔터티 세트를로드하여 순차적으로로드 할 수 있기를 원합니다.WCF RIA 서비스를 사용하여 여러 LoadOperations에 대한 패턴
여러 개의 페이지에 여러 개의 콤보 박스가 있습니다. 이러한 콤보 박스는 데이터베이스의 정적 값 (예 : 상태 값)으로 채워집니다.
지금은로드하려는 각 유형에 대해 일련의 LoadOperations을 문자열로 묶는 한 가지 방법으로 VM에서이 값을 사전로드합니다. 예를 들면 다음과 같습니다.
public void LoadEnums() {
context.Load(context.GetMyStatusValues1Query()).Completed += (s, e) =>
{
this.StatusValues1 = context.StatusValues1;
context.Load(context.GetMyStatusValues2()).Completed += (s1, e1) =>
{
this.StatusValues2 = context.StatusValues2;
context.Load(context.GetMyStatusValues3Query()).Completed += (s2, e2) =>
{
this.StatusValues3 = context.StatusValues3;
(....and so on)
};
};
};
};
이 기능은 정상적으로 작동하지만 다소 불쾌한 것으로 보입니다. 또한 마지막로드 조작이 완료되면이 작업 이후에 작업 할 모든 엔터티를로드 할 수 있으므로 이러한 열거 형 값은 콤보 상자 및 목록 상자와 같은 폼 요소에서 올바르게 해결됩니다. (저는 생각합니다) 델리게이트를 만들지 않고 마지막로드 조작 완료시이를 호출하지 않고서는 쉽게 수행 할 수 없습니다.
그럼 내 질문은 : 거기 밖으로 아무도 사용하는 더 나은 패턴, 이상적으로 어디 하나의 LoadOperation 내 모든 정적 엔티티를로드 할 수 있습니까?
는 그냥 LoadOperations 또 다른 후 하나를 호출하고 도메인 컨텍스트가 호출되는 순서대로 동 기적을 만들 것입니다 :
'context.Load'를 동 기적으로 호출하는 방법이 있습니까? – Shimmy
@Shimmy, Silverlight의 모든 RIA 서비스 호출은 비동기입니다. – Custodio
Custodio, 내 질문은 동기로 호출 할 수 있고 현재 스레드를 차단할 수있는 경우입니다. – Shimmy