2010-11-25 1 views
1

ビューモデル内のプロパティの重複に関する質問があります。私の検索ビューの 私は、次のビューモデルViewModelsの複製プロパティに関する質問

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;} 
    } 
} 

を持っている私の入力ビューの場合、この

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;} 


} 

のように見えるのviewmodelを持っています私は多くのプロパティを複製しています。 私は、workerと呼ばれるDTOクラスのように作成し、これらのビューモデルクラスのそれぞれに配置するか、これを行うより良い方法があるのが理想的でしょうか?

おかげ

答えて

2

あなたがコードを改善し、重複を減らすために提案のように、私はそれぞれのViewModelにWorkerViewModelで行くと思います。

+0

ここでは、DTOを使用するのが理にかなっています。 –

+0

EFエンティティが既にワーカーと呼ばれています。私はdtoクラスを作成する方が良いか、代わりにEFクラスを使うべきですか? – zSynopsis

1

絶対にワーカークラスを作成し、これらのプロパティをオブジェクトに配置します。