我們開發的後臺應用程序的Db相當大。 從數據庫到內存加載所有內容是不合理的,所以當模型的屬性被請求時,我們從數據庫中讀取(通過EF) 但是我們的許多UI只是簡單的具有一些(!)屬性的實體列表。例如,我們只想顯示標題,標題和名稱。 後來當用戶選擇該項目並想執行一些操作時,需要整個對象。現在我們有存儲在內存中的項目列表。 某些屬性包含較大的文本,圖像或其他數據。 EF與實體一起工作,讀取一堆大對象會顯着降低性能。需要一些關於MVVM +輕量級對象的建議+ EF
據我所知,問題可以通過創建輕量級實體並在適當的上下文中使用它們來解決。
首先。我恐怕每個視圖都會讓我們創建新的LightweightEntity,並且我們最終會以臃腫的對象上下文結束。
二。由於模型包裝EF,我們需要爲各種實體提供方法。
三。 ViewModel相互通信並傳遞實體。
所以我堅持所有這些考慮因素,需要良好的建築設計建議。 有什麼建議嗎?
看看[這篇文章](http://blogs.teamb.com/craigstuntz/2009/12/31/38500/)有幫助。 – 2012-08-03 17:38:57
@克雷格斯坦茲。不知道EF支持這一點。謝謝!而這個投影被編譯成SQL,不會返回不必要的屬性,不是嗎? – 2012-08-03 18:27:23
是的,它被翻譯成SQL。 – 2012-08-03 19:04:18