你這里涉及到兩段式更新模式,一是數據庫到RIA Service,一是RIA Service到SilverLight.
有Pull和Push兩種模式:
先說Pull,SilverLight 采用輪詢的模式調用RIA Service以檢索數據是否更新,如果已更新,則調用RIA Service重新獲取數據,可以使用 HTTP Polling Duplex 綁定簡化數據更新檢索操作;
再說Push,使用WCF Callback契約,SilverLight向RIA Service訂閱數據更新通知,RIA Service通過SqlDependency或OracleDependency向數據庫訂閱更新,當數據庫有更新發(fā)生時,通知RIA Service,接下來分兩種模式:
一,RIA Service收到更新通知后再調用SilverLight注冊的回調接口通知SilverLight,SilverLight收到更新通知后,再調用RIA Service重新獲取數據。
二,RIA Service收到更新通知后從數據庫中查詢出增量數據,然后調用SilverLight注冊的回調接口,直接將增量數據推送給SilverLight,SilverLight收到增量數據后再更新自己的UI.