我正在使用Service Layer --> Repository --> Entity Framework (Code-First) w/POCO objects
方法,並且我在更新實體方面遇到困難。實體框架服務層更新POCO
我正在使用AutoMapper將我的域對象映射到我的視圖模型,這對於獲取數據非常有用,不知道如何將這些更改恢復到數據庫中?
使用純POCO對象,我會假設沒有任何更改跟蹤,所以我看到我唯一的選擇是自己處理它。你是否確保你的視圖模型具有與你的域對象相同的屬性?如果我只是改變視圖模型中的一個或兩個字段會怎樣?域對象上的其餘字段是否不會使用默認值在數據庫中被覆蓋?
這樣說,什麼是最好的方法?
謝謝!
編輯
那麼我就磕磕絆絆的就是這個,讓我們例如簡單Customer
:
1)Controller
有一個服務,CustomerService
,調用服務GetCustmoerByID
方法。
2)Service
調用CustomerRepository
並檢索Customer
對象。
3)Controller
使用AutoMapper將Customer
映射到ViewModel
。
4)Controller
將模型交給View
。一切都很好!
現在在視圖中,您可以對客戶進行一些修改並將其發送回控制器,以便將更改保留到數據庫中。
我會假設在這一點上對象是分離的。那麼模型是否應該具有與Customer
對象相同的屬性?你是否必須爲每個你不想展示的物品製作隱藏的領域,這樣他們才能堅持下去?
如何處理將對象保存回數據庫?如果您的視圖/模型僅處理對象上的幾個字段會發生什麼?
如果您使用Automapper進行單向映射,爲什麼不能用它映射另一種方式? – stephen776 2011-04-22 17:08:07