從我讀,我明白,我們總是應該傳入一個視圖模型的視圖。但是,有時這個視圖模型與EF模型完全一樣或幾乎相同。它是可以接受的還是有解決這個問題的辦法(重複代碼)?最佳實踐實體框架模型VS的ViewModels
舉例來說,如果我有這樣的EF-型號:
class UserModel
{
string id {get;set}
string name {get;set}
string address {get;set}
string phone {get;set}
string website {get;set}
}
視圖模型如何應該是...是這樣的:
class UserViewModel
{
string name {get;set}
string address {get;set}
string otherobject {get;set}
}
或者這樣:
class UserViewModel
{
UserModel user;
string otherobject {get;set}
}
使用選項#1,屬性會重複...而在另一個視圖模式中,它們會再次重複。我將需要重複每個視圖模型上的所有數據註釋。但是,我只發送我需要的屬性。
對於選項#2,什麼是重複的,但我經過了很多,我並不需要的屬性。
的最後一個選項是混合選項#1,根據需要選擇#2 ...但我不喜歡,因爲缺乏一個共同的標準的這個選項。有時,屬性將在視圖模型中定義和數據註解,有時也會在EF模型中定義。
我希望有一個選項#4,我沒有看到...?
謝謝。
只要使用最簡單,最適合該特定情況的東西。爲了簡單和可讀性而努力......如果使代碼更難理解,就沒有任何僵化之處。 –