2014-04-29 4 views
0

MSDNs walkthrough.의 도움으로 RIA 서비스 솔루션을 만들었습니다. 두 테이블의 데이터를 보여주는 두 개의 DataGrid가 있습니다. 하나의 DataGrid는 재료를 표시하고 다른 하나는 구성 부품 (스웨덴어로 정렬)을 표시합니다. 그러나 구성 요소 파트 테이블의 구성 요소 part-ID가 자재 테이블에도 표시되기 때문에 두 테이블을 결합하고 싶습니다.하나의 DataGrid에서 두 테이블의 열을 결합하고 Silverlight에서 join을 사용할 수 있습니까?

하나의 DataGrid에서 두 테이블의 열을 결합하고 Silverlight에서 join을 사용할 수 있습니까?

public partial class MainPage : UserControl 
    { 
     private DomainService1 _materialContext = new DomainService1(); 
     private DomainService1 _sortimentContext = new DomainService1(); 

    public MainPage() 
    { 
     InitializeComponent(); 


     #region Material 
     EntityQuery<Material> query = 
     from c in _materialContext.GetMaterialQuery() 
     where c.tillverkningsorderID.Equals(1) 
     orderby c.materialID 
     select c; 

     //LoadOperation<Material> loadOp = this._materialContext.Load(this._materialContext.GetMaterialQuery()); 
     LoadOperation<Material> loadOp = this._materialContext.Load(query); 
     myMaterialGrid.ItemsSource = loadOp.Entities; 
     #endregion 


     #region Sortiment 
     LoadOperation<Sortiment> loadOp_S = this._sortimentContext.Load(this._sortimentContext.GetSortimentQuery()); 
     sortiment.ItemsSource = loadOp_S.Entities; 
     #endregion 





    } 

편집 : 그것은 많은 관계

답변

0

에 하나 MaterialSortiment 사이에 일대일 관계가있어? 따라서 Sortiment 객체가 재료 테이블의 단일 행에있는 모든 추가 열을 갖기를 원할 것입니다.

그렇다면 가장 쉬운 방법은이 두 테이블의 조합 인 데이터 개체를 만드는 것입니다. EntityFramework를 사용하는 경우 Entity Splitting이라고하며, 모델에 두 개의 sql 테이블 조인을 나타내는 whatever-you-like라는 새로운 단일 엔터티가있을 수 있음을 의미합니다.

+0

예, 일대일 관계입니다. 데이터베이스의 변경 사항을 쉽게 편집하고 저장할 수 있습니까? DataGrid에서 드롭 다운 목록을 사용할 수도 있습니다. – DeveloperDahak

+0

EF를 사용하여 편집/저장하면 예전처럼 쉽습니다. 함수를 저장 프로 시저에 매핑하는 경우에는 분명히 수동으로 정렬해야합니다. 그것의 요지는 두 종류의 엔티티 ('Material'과'Sortiment')를 갖기보다는 하나의 엔티티 타입 ('MaterialWithSortiment')을 가질 것이고 모든 데이터 연산은이 새로운 타입이 될 것입니다. 이것은 여러 테이블에 * 엔티티 * 분할 *입니다. EF는 모델에서 바로 매핑을 얻는 한 평범한 물건을 처리합니다. – Mashton

+0

아니요. 그것은 일대 다의 관계입니다! – DeveloperDahak