1

저는 실버 라이트 4로 RIA 서비스를 연구하고 그것을 사용하는 것을 고려하고 있습니다. ASP에서 실버 라이트로 전환하면 데이터 기반 앱을위한 실버 라이트의 성숙도에 대한 우려가 있습니다.관계형 데이터 효율성을 위해 RIA 서비스는 어떻게됩니까?

나는 관계형 데이터 쿼리를 보았다. 내가 '사람'테이블과 '자동차'테이블을 가지고 있다고합시다. 한 사람과 여러 자동차를 연결할 수 있습니다. 이제 관계형 데이터로 쿼리를 수행 할 경우 서버에서 클라이언트로 반환 할 추가 테이블을 포함하도록 지정해야합니다. 여기에 표시 :

http://timheuer.com/blog/archive/2010/01/05/master-details-with-ria-services-and-includedresults.aspx

나는 효율 조금 걱정. 내가 이런 식으로하면, 잠재적으로 각 사람의 행에 대한 차 테이블에서 여러 개의 행을 보내는 것으로 나타납니다 (하나에서 여러 개로). 그러나 나는 자동차의 이름 만 원하고 다른 칼럼은 원할 수 없다. 다른 테이블에 대한 여러 개의 관계형 조인이있는 더 복잡한 예제는 추악해질 수 있습니다. 이 문제를 해결할 방법이 있습니까? 커스텀/복합 타입에 대한 정보 나 리어 (ria) 서비스가 데이터베이스 뷰를 처리하는 방법에 대한 정보가 많이 없습니다.

또 다른 생각은 내가 자체적으로 루프하는 관계형 데이터가 쿼리를 잠글 수 있다는 것입니다. 예를 들어 사람이 자동차에 연결하면 자동차가 다른 테이블에 연결되고 그 테이블은 다시 사람과 연결됩니다. 그것은 겉으로는 영원히 반복 할 수 있 었는가?

답변

2

RIA 서비스로 전송 된 (또는 전송되지 않은) 데이터 양은 전적으로 귀하에게 달려 있습니다. 모든 하위 테이블 데이터를 포함 할 필요는 없습니다. 예, 비효율적 인 데이터 요청을 작성할 수는 있지만,이를 최적화하는 것도 가능합니다.

일반적으로 ER 모델에서는 순환 루프가 발생하지 않습니다. SQL의 테이블에 대해 조인을 실행하는 것은 다릅니다.

만약 당신이 정말로 (처음에는 거의 없을 것입니다) 당신은 아마도 서버 측에서 SQL store procs를 사용할 것이고, 특정 매개 변수로 그 procs들을 공격 할 것입니다.

저는 Silverlight 3를 사용하여 몇 개의 대형 시스템을 구축했으며 현재 4 개로 작업하고 있습니다. 개인적으로 저는 ASP.Net으로 돌아가는 데 어려움을 겪을 것입니다. 그것은 (일단 당신이 그것의 단점을 알게되면) 개발하기 쉽고 실제로 많은 재미입니다 :)

희망이 도움이됩니다.

+0

복잡한 쿼리의 경우 일반적으로 테이블을 포함합니까 아니면 외래 키 ID를 가져온 다음 다른 쿼리 (예 : getNameFromID (int id))를 호출합니까? – Adam

+0

주로 네트워크 트래픽을 억제하기 위해 ID로 특정 항목을 요청합니다. 예를 들어 선택 목적으로 항목 목록을 요청하면 일반적으로 ID와 표시 이름 쌍을 반환하며 다른 항목은 필요하지 않습니다 (항목 별 기준으로 필요할 때 전체 세부 정보를 가져 오는 것으로 가정합니다). –