如果我公開我的EF 4模型對象(EF4實體)作爲屬性在我的ViewModel我「打破」MVVM?作爲MVVM數據綁定的ViewModel的屬性公開實體框架實體
我是否必須將每個Model類複製爲某種DTO並從ViewModel中公開這些DTO?
我理解View對模型的「不知道」的理論價值,但事實是(如果我不通過ViewModel將Model暴露給View),我必須有一些類它們具有與要綁定到的Model類相同的屬性。然後,在ViewModel中,我不得不刮掉那些DTO-ish對象的屬性來更新適當的EF實體(模型)。
這似乎是很多額外的代碼來編寫和維護。如果我在我的ViewModel上公開實體屬性(並綁定到該屬性),我仍然可以使用通過綁定ViewModel屬性設置ViewModel中的代碼/邏輯和啓用/禁用狀態的命令(即保存或刪除)。
如果您想知道:「必須爲您的ViewModel編寫一個或兩個DTO,有什麼大不了的?」你在想太小。
我有一個應用程序與75 + SQL表(因此75 + EF4實體)。我不喜歡編寫和維護75多個DTO的想法。現在我可以使用T4爲我的所有實體生成DTO,甚至可以生成部分類,以便我可以「自定義」這些生成的DTO,而不必丟失自定義項,如果必須重新生成。 儘管如此,我還是覺得這樣做是「值得的」,而且我還不確定。
想法?
對不起,但考慮重新措辭你的問題。最後三段基本上是一個咆哮。注意這一點,重點關注您的實際問題/疑慮 - 將有助於提供準確的答案。 – RPM1984 2010-10-16 07:39:14
我特別喜歡最後三段提出我的答案。它包含重要的信息。 – JanW 2010-10-16 07:56:42