[英]partial entity loading and management in silverlight / wcf ria
我有一個Silverlight 4應用程序,該應用程序使用WCF RIA服務從數據庫中提取實體。 這些數據對象非常簡單,只有幾個字段,但是其中一個字段包含任意大小的二進制數據。 用戶登錄后,應用程序基本上需要盡快訪問此數據,以顯示在列表中,啟用選擇等。
我的問題是由於此數據的大小,加載時間不可接受,並且可能接近RIA服務的默認超時。
我想以某種方式將對象部分加載到本地數據上下文中,以便獲得ID,名稱等,但沒有二進制數據。 然后,我可以在以后(即實際需要時)填充我需要顯示的那些對象的二進制字段。
任何有關如何實現這一目標的建議都將受到歡迎。
在寫這個問題時(我多久發生一次!),我想到的另一種方法是,我可以將二進制數據移動到與原始記錄1:1相連的單獨的數據庫表中,這將使我能夠利用RIA的延遲加載該二進制數據。
再次..評論歡迎! 謝謝。
不要更改您的數據庫。 更改您的送貨方式。
為您的項目快速列表創建一個單獨的WCF RIA服務,並使用POCO(普通的舊clr對象)發送所需數據的摘要。 然后,當您准備好大手筆時,可以一次從POCO的數據觸發下載一個。
布拉德·艾布拉姆斯 ( Brad Abrams)和尼基爾·科塔里 ( Nikhil Kothari)談論使用POCO已有一段時間。 請查看他們的MIX演講以獲取更多信息。
為您的快速列表項創建新服務:
public class QuickListService : LinqToEntitiesDomainService<MyEntities>
{
private IQueryable<QuickList> GetQuickList()
{
return from t in ObjectContext.Table
select new QuickList
{
ID = t.ID,
Title = t.Title
};
}
}
您的POCO只是服務器上的一個對象,如下所示:
public class QuickList
{
public string Title;
public long ID;
}
祝好運!
ps Nikhil的BookClub應用程序執行了很多操作。 如果您需要查看執行此操作的真實應用程序,請下載他的應用程序: http : //www.nikhilk.net/Content/Presentations/MIX10/BookClub.zip
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.