2012-11-07 67 views
0

通常,當使用表單應用程序處理來自數據庫的數據時,我會將其保存在數據集或數據表中,並根據需要提取數據。現在,我正在使用WPF,並試圖更多地符合MVVM模式。將這些數據錶轉換爲對象可以使MVVM更容易使用。什麼是更高效的數據表或自定義對象?

舉例來說,如果我有一個查詢填充像這樣的表格 - 爲p其中p.first_name =「鮑勃」 選擇p.first_name,p.last_name,p.phone,p.email從人 而不是保持數據表,我現在只是將其轉換爲人物件。

從性能的角度來看,製作對象是否存在和倒退,還是應該堅持使用數據集和數據表?

回答

2

在您描述的應用程序中,使用ORM(如EF)(或滾動您自己的)而不是DataTable/DataSet的性能影響可忽略不計,但取決於它的實現方式。

使用ORM的主要優點是確保類型安全,並且在從DataTable對象中檢索數據時不必執行類型轉換。在Linq中使用延遲加載也有好處。

我不認爲到處使用實體對象必然是一個解決方案。在ViewModel中使用DataTable對象沒有任何問題(雖然我不確定如何使用DataTable類的數據同步功能,但您完全可以不使用它)。

在一個新項目中,我會使用EF,只是因爲我喜歡讓打字照顧我,但如果你有一個使用表格的舊項目,那麼我會堅持下去。

1

只要確保您的對象只包含必要的字段幷包含對象,如果他們使解決方案更清晰。

任何最終的性能下降(最小)都將得到更清潔和更清晰解決方案的潛在長期性能優勢的補償。

相關問題