【问题标题】:Silverlight 4 RIA Services, the SIlverlight 4 Toolkit controls and many to many relationships in databaseSilverlight 4 RIA 服务、SIlverlight 4 Toolkit 控件和数据库中的多对多关系
【发布时间】:2010-06-29 13:09:37
【问题描述】:

我已经看了很长一段时间的 sn-ps 和教程,但我找不到完整的答案 - 只是一些零碎的东西。

我有一个包含 3 个表的数据库:

产品:

  • id 唯一标识符
  • 名称 nvarchar(50)

类别:

  • id 唯一标识符
  • 名称 nvarchar(50)

产品类别:

  • fk_product 唯一标识符
  • fk_category 唯一标识符

显然其中涉及到多对多的关系——一个产品可以有多个类别,一个类别可以应用于多个产品。

下一步是从数据库生成 ADO.NET 模型和域服务。这非常简单,我认为是标准的。

现在在视图中,我使用了 Silverlight 4 Toolkit 提供的 DataGrid 和 DataForm。

<toolkit:DataForm ItemsSource="{Binding Data, ElementName=ProductsSource}" Name="dataForm1" AutoCommit="True" />

<sdk:DataGrid x:Name="dataGird" ItemsSource="{Binding Data, ElementName=ProductsSource}" AutoGenerateColumns="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />

数据源 ProductsSource 定义如下:

<riaControls:DomainDataSource Name="ProductsSource" QueryName="GetProductsQuery" AutoLoad="True">
        <riaControls:DomainDataSource.SortDescriptors>
            <riaControls:SortDescriptor Direction="Ascending" PropertyPath="title" />
        </riaControls:DomainDataSource.SortDescriptors>
        <riaControls:DomainDataSource.DomainContext>
            <domain:PortfolioDomainContext />
        </riaControls:DomainDataSource.DomainContext>
    </riaControls:DomainDataSource>

现在:在视图中呈现来自这种多对多关系的数据的最佳方式是什么?有没有办法在 DataForm 中为具有多对多关系的属性显示启用多选的列表框?

【问题讨论】:

    标签: c# .net many-to-many wcf-ria-services silverlight-toolkit


    【解决方案1】:

    这可能是this question的重复

    显然 RIA 服务不支持多对多(EF 模型删除关联表)。

    您需要包含关联表。我认为关联表仅包含在 EF 模型中,如果它包含任何额外的字段(除了 2 个外键),或者您打破其中一个关联并自己管理多对多关系的一侧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多