簡體   English   中英

實體框架4 + Silverlight持久化實體圖

[英]Entity Framework 4 + Silverlight persisting entity graphs

我們目前正在使用Silverlight 4(使用PRISM)和Entity Framework 4構建我們的第一個大型應用程序。現在,我有一個關於持久化視圖模型數據的一般性問題。 假設我具有轉換為具有多個關聯的EF4實體的域對象(實體具有集合,實體又具有集合等。)。 在用戶操作期間/之后保留這些圖表的最佳方法是什么? 編寫更多粒度存儲庫方法(如“AddEntityToParent”和“RemoveEntityFromParent”)或者從視圖中獲取所有數據並將其推送到“SaveLargeParentEntity”方法會更好嗎? 我可以在Silverlight中“緩存”子對象的視圖模型項,然后將其全部下載到EF4,還是必須對用戶界面中更改的每個項進行粒度更新? 有什么好的建議嗎? 我希望我的問題足夠清楚。 謝謝。

您實際上是在基本CRUD操作和使用對象圖之間做出選擇。 我會選擇第二種方法,因為對Web服務的CRUD操作可能非常繁瑣。

使用對象圖時,通過Web服務發送您必須處理分離的行為。 更新關系時,分離的實體+對象圖會遇到麻煩 最好的方法通常是在更新之前加載整個圖形(獲取附加實體)並將接收到的圖形合並到附加圖形中 - 它將正確地跟蹤您的更改。

但是,因為您使用的是有狀態的Silverlight,所以您也可以考慮使用自我跟蹤實體(STE)。 STE可以在從EF ObjectContext分離后跟蹤更改。 因此,您可以將包含STE的對象圖從Web服務返回到Silverlight應用程序,對STE進行一些更改並將相同的對象圖發送回Web服務。 應用 STE的更改將為您處理大量工作。 請注意, 對於不是應該向一般Web應用程序或非.NET客戶端公開的服務, STE並不是最佳的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM