2010-11-14 25 views
0

例如,問題類將有questionid,標題,內容,時間貼,海報,標籤等,這是取數據的樣子:MVC - 數據類 - 只需要屬性子集?

public bool LoadFromDataRow(DataRow row) 
     { 
      questionId = (long)row["questionId"]; 
      content = (string)row["content"]; 
      poster = (string)row["poster"]; 
      datePosted = (DateTime)row["datePosted "]; 
      title = (string)row["title"]; 
      return true; 
     } 
然而

,有可能是當我一個時間只選擇這些屬性的子集,如問號和標題。我是否需要編寫另一個課程來處理這個問題?或者我需要檢查每一個欄之前我有這樣的取值:

if(row.hascolumns(...)) // seems like overkill? 

回答

1

恕我直言,這是很好有你的資料庫方法返回一個模型的所有屬性映射但隨後使用視圖模型當需要在視圖上顯示/編輯此模型時。然後在你的模型和你的視圖模型(這可能是模型的一個子集)之間進行映射,在你的視圖中使用視圖模型。這是一個例外:BLOBs。如果你要在數據庫中存儲二進制數據,比如圖像,我會建議你有兩個獨立的方法:一個取圖像,一個不取圖像。

+0

但如果有15個字段,我只需要2個,並且頁面上有很多這樣的記錄,是不是像我從我的SQL Server發送不必要的數據...?或者你認爲每個記錄獲取13個額外字段的時間可以忽略不計? – TPR 2010-11-14 23:12:44

+1

是的,你會執行一個SQL查詢,它將獲取15個字段,但只顯示5.我不會擔心這個和IMO相比查詢本身的執行可忽略不計的性能。當然,您應該測量性能以確保這不會成爲應用程序的瓶頸。 – 2010-11-14 23:16:30