2011-12-21 2 views
0

Silverlight RIA 서비스에 익숙하지 않으며 RIA 서비스를 EntityFramework와 함께 사용하는 기본 작동 프로토 타입이 있습니다. 이제 실제 프로젝트로 이동 했으므로 EntityFramework 이외의 개체를 utlize하는 방법은 궁금하지만 System.Windows.Controls.DomainServices.DomainDataSource와 같은 RIA 컨트롤을 사용하여 매길 수 있습니다. 예를 들어, 내 프로토 타입, 내가 가진 :Silverlight 4 (RIA 서비스 포함)

[EnableClientAccess()] 
public class RequestService : LinqToEntitiesDomainService<MyEntities> 
{ 
    public IQueryable<RequestData> GetRequests() 
    { 
     ... LINQ query removed ... 
    } 
} 

내가 MyRequestData 내가 만든 사용자 지정 공용 클래스입니다 <MyRequestData>을 된 IQueryable (및 엔터티 데이터 변환) 한 다음 응용 프로그램을 다시 된 IQueryable <RequestData> 변경하면 클라이언트 Silverlight 응용 프로그램에서 더 이상 쿼리를 볼 수 없습니다 (빌드 오류).

내 질문에, 어떻게 이러한 방식으로 EntityFramework 개체와 유사한 방식으로 이러한 사용자 지정 개체를 활용할 수 있으므로 페이지 매김을 적용 할 수 있습니까?

답변

0

당신은 POCO 클래스를 생성하고이 같은 속성 중 하나에 키 속성을 할당 ...

다음
public class MyClass 
{ 
    [Key] 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

당신은 같은 POCO 클래스에서 얻을 수있는 방법을 포함하는 DomainService 클래스를 만들 수 있습니다 this ...

[EnableClientAccess()] 
public class DomainService1 : DomainService 
{ 
    public List<MyClass> GetData() 
    { 
     return new List<MyClass>(){new MyClass{Name = "Henry", Age = 33}}; 
    } 
} 

이 메서드는 단일 요소가있는 MyClass 목록을 반환합니다. 하지만 거의 모든 것을 돌려 줄 수 있습니다.

그런 다음 클라이언트 측에서 당신이 이벤트 콜백에서 ... 같이

public MainPage() 
     { 
      InitializeComponent(); 
      DomainService1 ds1 = new DomainService1(); 
      var x = ds1.Load(ds1.GetDataQuery()); 
      x.Completed += new EventHandler(x_Completed); 
     } 
     void x_Completed(object sender, EventArgs e) 
     { 
      // process the results here 
     } 

을 도메인 서비스를 호출 할 수 있습니다, 당신은 LoadOperation에 보낸 인수를 캐스팅하고 당신이 원하는 데이터를 얻을 수 있습니다 ...

트릭은 '키'속성 사용에서 비롯됩니다. 그것은 모든 것을 작동하게합니다.

+0

정확히 내가 본 것입니다. 내가 한 모든 인터넷 검색에서 POCO 개체에 대해 전혀 알지 못했습니다. 나는 EntityFramework, NHibernate 등에서 모든 사이트가 초점을 맞추기 때문에 주로 그 점을 생각한다. – guyaton

+0

도움이 되었기 때문에 기쁩니다. 저는 SL RIA에서도 많은 질문을했습니다. 사람들이 응답에 만족한다는 것을 알 수 있도록 응답을 upvote해야합니다. –

+0

만약 내가 15 평판을 가지고 ....이 stackoverflow에 내 2 시간 게시입니다. – guyaton

관련 문제