0

我在使用RIA Services的我的Silverlight 5.0應用程序中使用實體框架。如何讓泛型存儲庫與EF異步加載數據?

我意識到要從客戶端獲取數據,必須在異步過程完成時從事件中獲取數據。

我在想如果有可能創建一個通用的存儲庫,其中這個存儲庫包含DatabaseContext並獲取數據。

有人可以定位如何開始這一部分。

+0

你指的是有一個IRepository 客戶端或服務器端? – mCasamento

回答

0

Joel在這裏有一個很好的教程:http://joel.net/generic-iqueryable-repository-for-ado.net,它解釋了通用存儲庫以及如何實現它。

編輯:Asynchronus部分: 我不確定(現在仍然不是)您是否希望客戶端和服務器之間的異步部分或實際存儲庫是異步部分。我認爲這是後者,所以我會先解決它。最簡單的方法是向存儲庫提供一個委託,存儲庫在完成執行查詢後立即調用它。

public class MyRepository:IMyrepository 
{ 
    public IEnumerable<MyReturnedObject> GetThoseObjects(Delegate ToCallWenDone,rest of parameters) 
    { 
     //get the data 
     //invoke the delegate 
    } 
} 

如果你想從客戶端調用是異步,看看這篇文章:http://forums.silverlight.net/p/168335/385493.aspx

希望這有助於。

+0

這是一個通用存儲庫的一個很好的例子,但是它沒有顯示如何異步實現它。 – cadrell0

+0

我已編輯我的帖子來解決您的疑慮,我想:) – JTMon