Я пытаюсь установить отношения многие-ко-многим в RIA / Silverlight, но не могу понять, как.
Моя база данных выглядит так ...
Stores Parts StoreParts
-------- ------- ----------
ID ID StoreID
StoreName PartName PartID
Я создаю модель данных сущностей в этой базе данных.
Мой XAML выглядит следующим образом
<toolkit:Accordion Background="White" BorderThickness="1" Height="503" HorizontalAlignment="Left" Margin="207,32,0,0" Name="accordion2" SelectionMode="ZeroOrMore" VerticalAlignment="Top" Width="181">
<toolkit:Accordion.ContentTemplate>
<DataTemplate>
<ListBox BorderThickness="0" ItemsSource="{Binding Parts}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding PartName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</toolkit:Accordion.ContentTemplate>
<toolkit:Accordion.Effect>
<DropShadowEffect BlurRadius="8" />
</toolkit:Accordion.Effect>
<toolkit:Accordion.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding StoreName}" />
</StackPanel>
</DataTemplate>
</toolkit:Accordion.ItemTemplate>
</toolkit:Accordion>
Мой код XAML позади:
StoreContext storeContext = new StoreContext();
accordion2.ItemsSource = storeContext.Stores;
storeContext.Load(storeContext.GetStoresQuery());
Мой RIA DomainService:
[EnableClientAccess()]
public class StoreService : LinqToEntitiesDomainService<MenuTemp2Entities>
{
public IQueryable<Store> GetStores()
{
return this.ObjectContext.Stores.Include("Parts");
}
}
И, наконец, мои метаданные RIA
[MetadataTypeAttribute(typeof(Store.StoreMetadata))]
public partial class Store
{
internal sealed class StoreMetadata
{
// Metadata classes are not meant to be instantiated.
private StoreMetadata()
{
}
public int ID { get; set; }
[Include]
[Association("StoreParts", "ID", "ID")]
public EntityCollection<Part> Parts { get; set; }
public string StoreName { get; set; }
}
}
StoreName проходит нормально, но похоже, что он не назначает детали в качестве вспомогательной таблицы дляхранить.Он возвращает только 1 деталь в магазине в той последовательности, в которой они хранятся в таблице деталей.Похоже, он вообще не использует отношения StoreParts.
Есть идеи?