2010-11-14 3 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; 
     } 

однако, может быть время, когда я только выбрав подмножество этих свойств, таких как questionid и title. Нужно ли мне писать другой класс, чтобы справиться с этим? Или мне нужно проверить для каждого столбца, прежде чем я получить значение с чем-то вроде этого:

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

ответ

1

ИМХО это нормально, чтобы ваш метод вместилище возвращает модель со всеми свойствами привязываются, но затем использовать модель представления когда придет время отображать/редактировать эту модель на представлении. Затем выполните сопоставление между вашей моделью и моделью просмотра (которая будет подмножеством модели) и, по вашему мнению, работать с моделью представления. Это исключение: BLOB. Если вы храните двоичные данные, такие как изображения в базе данных, я бы рекомендовал вам иметь два отдельных метода: один, который извлекает изображения, а другой - нет.

+0

, но если есть 15 полей, мне нужно всего 2, и на этой странице есть много таких записей, не так ли, что я отправляю ненужные данные с моего SQL Server ...? Или вы думаете, что время для получения 13 дополнительных полей за запись незначительно? – TPR

+1

Да, вы будете выполнять SQL-запрос, который будет извлекать 15 полей, но отображать только 5. Я бы не стал беспокоиться об этом, и IMO будет незначительным поражением производительности по сравнению с выполнением самого запроса. Конечно, вы должны измерить производительность, чтобы убедиться, что это не станет узким местом для приложения. –