Вопрос относительно дублирования свойств в ViewModels - PullRequest
1 голос
/ 25 ноября 2010

У меня есть вопрос относительно дублирования свойств в моделях представления.Для моего вида поиска у меня есть видовая модель, которая выглядит следующим образом

public class SearchModel
{
    public IEnumerable<SelectListItem> Genders {get;set;}
    ... other select lists
    // Worker Details
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public DateTime Birthdate {get;set;}
    public int Phone {get;set;}et
    public string Gender {get; set;}

    //Address Details
    public string Street {get;set;}
    public string City {get;set;}
    public string Zip {get; set;}


}

Для моего вида ввода у меня есть следующая модель вида

  public IEnumerable<SelectListItem> Genders {get;set;}
  public IEnumerable<SelectListItem> Directions {get;set;}
    ... other select lists
    // Worker Details
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public DateTime Birthdate {get;set;}
    public int Phone {get;set;}et
    public string Gender {get; set;}

    public string SSN {get; set;}
    public string DL {get;set;}

    //Address Details
    public int Number {get;set;}
    public string Direction {get;set;}
    public string Suffix {get;set;}
    .....

    public string Street {get;set;}
    public string City {get;set;}
    public string Zip {get; set;}
}

Модель отображения списка

public class ListDisplayModel
{
   public IEnumerable<Worker> Workers {get;set;}

   internal class Worker 
   {
       public string FirstName {get;set;}
       public string LastName {get;set;}
       public DateTime Birthdate {get;set;}
       public int Phone {get;set;}et
       public string Gender {get; set;}

       public string SSN {get; set;}
       public string DL {get;set;}

       //Address Details
       public int Number {get;set;}
       public string Direction {get;set;}
       public string Suffix {get;set;}
       public string Street {get;set;}
       public string City {get;set;}
       public string Zip {get; set;}
   }
}

Я чувствую, что дублирую многие свойства.Мне было интересно, будет ли для меня идеальным идти вперед и создавать как класс DTO с именем worker и просто помещать его в каждый из этих классов модели представления, или есть лучший способ сделать что-то подобное?

Спасибо

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

Я бы использовал WorkerViewModel в каждой ViewModel, как вы предлагали улучшить код и уменьшить дублирование.

1 голос
/ 26 ноября 2010

Абсолютно создайте рабочий класс и поместите эти свойства в объект.

...