ビューに必要なプロパティのみをで定義しますViewModel。ViewModelはドメインモデルに似ている場合があります。ただし、ビューモデルに必要なのは、ビューに必要なプロパティのみです。すべてのプロパティではありません。
例:プロパティを持つ顧客ドメインモデルがある場合がありますCustomerID, FirstName,LastName,CreatedDate,CreatedBy,LastModifiedDate。
public class CustomerDomainModel
{
public int CustomerID { set;get;}
public string FirstName { set;get;}
public string LastName { set;get;}
public DateTime CreatedDate { set;get;}
public DateTime LastModifiedDate { set;get;}
public int CreatedBy { set;get;}
}
ただし、ビュー(UI-フォーム)では、とのみのフィールドを表示する必要がある場合がありFirstNameますLastName。したがって、viewModelにはこれらの3つのプロパティのみが含まれる場合があります(FirstNameとLastName +別のプロパティCustomerIDもあります)
public class CustomerViewModel
{
//My view is going to use only these 3 fields.
// Hence no other properties i am defining here
public int CustomerID { set;get;}
public string FirstName { set;get;}
public string LastName { set;get;}
}
これら2つ(ドメインオブジェクトからViewModel)の間でマッピングするには、Automapperの使用を検討してください。