如何在一个数据网格中组合两个表中的列并在Silverlight中使用连接?

时间:2014-04-29 13:41:57

标签: linq entity-framework silverlight wcf-ria-services ria

我在MSDNs walkthrough.的帮助下创建了一个RIA服务解决方案。我有两个显示两个表数据的数据网格。一个数据网格显示材料,另一个数据网格显示组成部分(瑞典语中的分类)。但是我想组合这两个表,因为组件部件表中的组件部件ID也在材料表中表示。

如何在一个数据网格中组合两个表中的列并在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





    }

编辑:这是一对多的关系

1 个答案:

答案 0 :(得分:0)

MaterialSortiment之间是否存在一对一的关系?那么您是否希望Sortiment对象在材质表中的一行中包含所有额外的列?

如果是这样,最简单的方法可能是创建一个数据对象,它是这两个表的组合。如果您正在使用EntityFramework,则称为Entity Splitting,这意味着您的模型可以拥有一个名为any-like-like的新单个实体,它表示两个sql表的连接。