2012-11-12 34 views
1

在當前項目中,我們正在嘗試使用不同的方法來填充來自Entity Framework的ViewModel對象。目前,在收到的EntityModel列表,我們使用的擴展方法:在MVVM模式中使用ASP.NET MVC中的C#擴展方法

public static IEnumerable<ViewModel> GetViewModel(this IEnumberable<EntityModel> data){} 

這個擴展方法在相同的命名空間定義爲ViewModel對象,以保持它緊密相關ViewModel和ASP特定的控制器.NET MVC。

具體來說,我們正在尋找反饋從開發社區上:

  • 這是一個合適的位置是使用擴展方法。我們擔心,因爲它看起來像是從OOP中解脫出來的,更像是一種「創可貼」解決方案。
  • EntityModel對象中填充ViewModel對象的'試驗和測試'方法是什麼?我們曾嘗試以下:
    • 在控制器
    • 傳遞在實體/視圖模型對象到視圖模型構造器(視圖和控制器之間過分耦合)手動分配每個字段(最佳,到目前爲止,但視圖模型耦合到實體)

在此先感謝您的任何建議/幫助。

回答

2

建議將EntityModel和ViewModel之間的映射與任一個解耦。如果地圖管道與視圖相關聯,那麼很難在未來出於不同目的而放入新的視圖。如果綁定到EntityModel,使用相同的視圖很難放入新的實體模型。無論哪種方式,如果映射基礎設施與任何一個綁定,則獨立演進視圖模型和實體模型會更加困難。

我建議映射應該是一個獨立的架構構建塊,並進一步建議你看看AutoMapper作爲該組件的實現。

http://automapper.codeplex.com/

+0

謝謝。我們將研究AutoMapper – ShaneA

相關問題