2010-06-29 32 views
0

我一直在寻找片段和教程很长一段时间,但我找不到完整的答案 - 只是一些零散的部分。Silverlight 4 RIA Services,SIlverlight 4工具包控件和数据库中的多对多关系

我有3个表数据库:

产品:

  • ID唯一标识符
  • 为nvarchar(50)

类别:

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

产品分类:

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

很明显,涉及到多对多的关系 - 一个产品可以有多个类别,一个类别可以应用于多个产品。

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

现在在视图中,我使用了由Silverlight 4工具包提供的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中显示一个具有多对多关系的属性的多选列表框?

回答

0

这是this question

一个可能的重复显然许多一对多(其中EF模型中删除关联表)没有在RIA服务支持。

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

相关问题