2011-01-05 29 views
1

我一直在調查RIA服務,我非常理解發生了什麼。但是,如果我希望使用RIA服務(如調用存儲庫層的服務層),那麼我是否應該不返回IList並將我的方法標記爲INVOKE?RIA服務:我應該返回IQueryable還是IList?並標記爲INVOKE? (服務和存儲庫模式)

在我看來,這好像是對存儲庫層的標準服務層調用。哪裏存儲庫返回IQueryable和服務返回IList

我非常熟悉這些模式(服務和存儲庫),但想使用這樣的RIA服務。

否則,silverlight總是會在實際上調用存儲庫目錄,因爲它返回IQueryable。

我的想法,雖然我會喜歡一些反饋是在返回IQueryable等的ria服務上創建另一個層 - 我們稱之爲Repository模式..然後獲取Ria服務(域服務)方法總是返回IList或域類並將這些方法標記爲「ALL」作爲INVOKE,以便我們不需要返回IQueryable。

這聽起來不錯,在實踐中?非常感謝所有的反饋提前

回答

2

謝謝如果你使用調用,而不是你錯過了一些RIA的很酷的功能查詢,如新DomainCollectionView,這需要一個LoadOperation正常工作。實際上,無論您的方法是返回IList還是IQueryable,表達式的執行仍然延遲到服務器,所以從客戶端的角度來看,它可能沒有太大的區別。

否則,silverlight總是會在實際上調用存儲庫目錄,因爲它返回IQueryable。

客戶端不需要知道這個,那麼它有什麼不同?它就像任何其他存儲庫/服務實現一樣 - 客戶端和數據之間的間接級別,以便在將來對系統進行更改時節省您的麻煩。

+0

感謝martin的確認.. – Martin 2011-01-08 17:26:39