2010-02-20 2 views
0

RIA Services에서 내 머리를 감쌀 수 없다는 것을 알기 위해 지난 주 필사적으로 노력해 왔습니다. 나는 꼼꼼하게 the Microsoft tutorial video에 나와있는 예제를 따라 갔고 여전히 문제가 있습니다. 당신이 할 수없는 일을하려고 노력하고 있을지도 모르겠지만 모든 경우에 나는 잘못된 방향으로 가고 있습니다. 그것은 ChairOptions 테이블에서 찾은 정보로 데이터 그리드를 채 웁니다Silverlight 3 (RIA 서비스 포함) - 결과 세트 /로드 완료

IVCContext ctx = new IVCContext(); 
MyDataGrid.ItemsSource = ctx.ChairOptions; 
ctx.Load(ctx.GetChairOptionsQuery()); 

: 튜토리얼에서

그들은 매우 유사한 코드를 사용합니다.

하지만 내가하고 싶은 것은 DataGrid 또는 다른 컨트롤에 바인드하지 않고도 결과에 직접 액세스 할 수 있기를 바랍니다. 단순히 결과 세트를 얻고 싶습니다. 그런 다음에 조작하십시오.

더 구체적으로 말하자면, 모델에서 특수 효과를 수행 할 수 있도록 속성 (이름, 비용 등) 및 관계 (그룹, 하위 그룹)를 살펴보고 싶습니다. 컨트롤의 내용. 그러나 무엇을 시도하든 관계없이 비어있는 결과 세트를 얻는 것처럼 보입니다.

내가 좋아하는 일을 시도했다 :

LocalContext ctx = new LocalContext(); 
var ResultSet = ctx.ChairOptions; 
ctx.Load(ctx.GetChairOptionsQuery()); 

그러나의 ResultSet은 항상 비어 있습니다.

나는이 사실을 이해할 수없는 이유 중 하나라고 생각하는데, # 2 번 라인의 할당에서 정확히 무슨 일이 일어나고 있는지, Load() 함수가 실제로 무엇을하는지 알아낼 수 없기 때문이다. 온라인 # 3. 첫 번째 예제에서는 자동으로 작동하지만 실제로 어떤 일이 일어나는지 알고 싶습니다.

도움이나 참고 사항에 미리 감사드립니다.


편집 : 나는 문제가 될 일을 일어로

그것은 오늘 아침 저를 명중했다. 코드가 매우 간단하고 절차 적으로 보일지라도 Load 호출은 실제로 비동기입니다. 맞습니까?

그렇다면 문제는 어떻게 끝났는 지 어떻게 알 수 있습니까? 결과에 대해 작업 할 수 있습니까?


편집 :이 새로운 통찰력을 검색

더 많은 개별로드 작업에 콜백을 부착 대해 this bit of information를 알려준. 그러나 해당 링크에서 제공되는 클래스는 LoadOperation이라는 개체를 사용하며 LoadOperation이 System.Windows.Ria 네임 스페이스에있는 것처럼 보일지라도 using을 추가하면 Visual Studio에서 LoadOperation에 대한 참조를 개체로 인식 할 수 없으므로 이 클래스를 사용하여 프로젝트를 빌드 할 수 없습니다.

답변

0

This class은 기본적으로이 문제를 해결합니다. 로드 조작이 완료 될 때 실행될 콜백을 지정할 수 있습니다 (여러로드를 동시에 스케줄 할 수 있음). 콜백이 호출되면 원하는 데이터를 사용할 수 있었고 기쁘게도 데이터를 사용할 수있었습니다.

관련 문제