2

我有一个Silverlight应用程序,需要相当多的数据才能运行,并且它需要一切前期操作。它使用RIA服务(和实体框架)来获取所有信息。获取所有数据需要10-15秒,但数据每月只能更改一次。使用RIA服务对实体进行序列化

我想要做的就是将这些数据转储到独立存储中,以便下次他们加载应用程序时,我可以抓住它,查看它是否已更新,如果不使用已经存在的数据通过电线获得并节省大量时间。

我需要存储的图的结构是(或多或少)典型的树结构。一个模型具有组件,一个组件具有功能,一个功能具有选项。我遇到的问题是,当我要求将此根实体(模型)序列化时,它只是序列化顶级对象并忽略所有“子”对象。

有谁知道一个方便的方法来让它序列化/反序列化整个图吗?

回答

0

如果RIA服务是问题,那么我可能会有提示。

通过RIA转移对象的集合,您需要对域模型进行小小的调整。

可以说你有一个ReceiptEntries列表收据。然后你会这样做。

public Receipt { 
    public guid Id; 
    public List<ReceiptEntry> Entries; 
} 


public ReceiptEntry { 
    public guid ReceiptId; 
} 

你必须告诉RIA如何将这些对象相关联。

[Include()] 
[Composition()] 
[Association("ReceiptEntries", "Id", "ReceiptId"] 
public Receipt { 
    public guid Id; 
    public List<ReceiptEntry> Entries; 
} 

然后它会序列化对象列表。

我可能写奇怪的语法因为我习惯了VB.net或者在示例代码中有一些小错误,只是抛出它。但是,如果问题在于RIA不会按照它所传递的方式发送对象,那么您应该调查此场景。如果你没有。

+2

不幸的是,RIA Services为我提供了我需要的对象,所以在应用程序运行时我可以访问整个图表,但是当我尝试序列化图形时,它只抓取顶层对象。 :( 虽然我很感激你花时间去帮忙! – 2010-07-06 13:43:53

相关问题