2012-03-30 4 views
0

EF 및 Wcf Ria 서비스가있는 tab1, tab2 테이블 2 개가 있다고 가정하면 두 개의 엔터티 Tab1, Tab2가 domaincontext의 클라이언트 측에서 사용할 수 있습니다. 그때 나는이 작업을 수행 할 수있는 방법코드의 컨텍스트에서 엔터티 컬렉션을 동적으로 가져 오는 방법은 무엇입니까?

MyDomainContext.Entities("Tab1"); 

같은 코드에서 동적으로 entityset을 얻으려면?

using System.ServiceModel.DomainServices.Client; 

그런 다음 당신은 다음처럼 개체의 컬렉션을로드합니다 : 위의 코드에서

var ctx = new MyDomainContext(); 

ctx.Load<tab1>(_ctx.GetTab1Query(), LoadBehavior.RefreshCurrent, (op) => 
    { 
     var data = op.Entities; 
    } , null); 

이 서버를 니펫을 클라이언트 측 코드에서

답변

1

당신은 같은 참조를해야합니다 side 도메인 서비스가 GetTab1Query를 제공합니다.

+0

감사합니다. 솔루션에서 Tab1은 하드 코딩됩니다. Tabl, Tab2s와 같은 다른 엔티티 세트를 얻을 수 있도록 Tabl이 매개 변수가 될 수 있기를 바랍니다. – KentZhou

+0

@KentZhou 가능하지만이를 가능하게하려면 DomainService를 직접 코딩해야합니다. –

1

나는 카일 맥클 렐런의 코드에서 그의 ComboBoxDataSource을 보았습니다. 그는 문자열 매개 변수를 취해 Operation (또는 Query)를 호출합니다. 이제 ComboBoxDataSource 모듈에있는 RiaServicesContrib 프로젝트의 일부입니다. (ComboBoxDataSource.cs 새로 고침 방법에서)

필수 : ​​

Type domainContextType = this.DomainContext.GetType(); 
MethodInfo operationInfo = domainContextType.GetMethods().Where(
    m => (m.Name == this.OperationName) && (m.GetParameters().Count() == this.Parameters.Count)).FirstOrDefault(); 

this.Operation = (InvokeOperation)operationInfo.Invoke(this.DomainContext, this.Parameters.Select(p => p.Value).ToArray()); 
this.Operation.Completed += this.OnInvokeCompleted; 
관련 문제