まず、次の質問とその回答をお読みください。
この記事も役立ちます:
結論として、ほとんどのシナリオでは、分厚いドメイン モデル (DM)とそれに関連する軽量のプレゼンテーション モデル (PM)が役立つと思います。そのため、その太った DM の小さなチャンクだけを編集したい場合は、PM の 1 人が手を挙げます。
DM でこのクラスを想像してみてください。
namespace DomainModels
{
public class Person
{
public int ID { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public DateTime? DoB { get; set; }
public MyAddressDM Address { get; set; }
public string Phone { get; set; }
public IEnumerable<MyCarModel> Cars { get; set; }
//etc.
}
}
ここで、1 つのビューで Address と Phone のみを編集する必要があるとします。軽量 PM は次のようになります。
namesapce PresentationModels
{
public PersonAddressPhone
{
public int ID { get; set;}
public string FullName { get; set;}
public string AddressSteet { get; set; }
public string AddressCity { get; set; }
public string AddressState { get; set; }
public string AddressZipCode { get; set; }
public string Phone { get; set; }
}
}
別のビューでは、人の車を追加/削除する必要があります。
namesapce PresentationModels
{
public PersonCars
{
public int ID { get; set;}
public string FullName { get; set;}
public IEnumerable<PMCar> Cars { get; set;}
}
}
DO と PM の間のマッピングは、このパズルの黄金のピースです。必ずAutoMapperをご覧ください。