2012-01-17 45 views
2

假设我有一个GridView,GridView将通过WCF显示来自数据库的数据。如何在Silverlight中保存数据?

我能想到的唯一的办法是使用

  1. 定时器来继续查询从WCF(简单)。

  2. 最好的办法是当数据在 数据库发生变化时得到通知,以便使用查询通知。但是现在,WCF位于Silverlight客户端和数据库之间, 之间,因此查询通知将只发送到WCF。然后我需要 使WCF使用双工通信。 (听起来有点小题大做......)

  3. 刷新...按钮......(这是一个笑话)

有没有什么更好的办法做这件事?

回答

0

我曾经为一家制作医疗软件的公司工作,我们有一个应用程序必须监视医生和订单,并不断更新。我们使用了一个计时器,就像你上面描述的那样。还有一些额外的组件 - 例如,我们可以通过软件更改采样率,这样在繁忙时间里,我们可以更频繁地ping数据库,而在较慢的时间内更少。高速缓存也已实施。还有一个系统可以首先提取较少量的数据,然后只在需要时才提取更多数据。例如,如果医生自上次更新以来没有进行过轮巡,则无需检查是否更新了患者数据。像这样的东西。

+0

是的,我看到了类似的实现。我们有一个小表,用于指示数据表是否有任何更改并对数据库表进行版本控制。所以它只有在数据发生变化时才会提取实际数据。采样率不同的定时器是个不错的主意,它可以节省大量的带宽。但是我想看看是否有类似于2的情况。当需要拉取数据时,确实只需要拉取数据,因此我们不必对数据库(或WCF)进行ping操作。 – 2012-01-17 17:13:25