通常、ビューにエンティティを渡してはいけないと言っている人を見かけます。エンティティを使用すると結合が増加するため、代わりに DTO/VO/ViewModel/AnyOtherThingYouWant を使用する必要があると彼らは言います。追加のロジックが必要な場合 (または、すべてのプロパティが必要ない場合) を無視すると、これを行う利点がわかりません。たとえば、次のクラスを考えてみます。
public class Contact {
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
}
次のように、別のクラスを作成するコードがたくさんあります。
public class ContactDTO {
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
}
ビューで使用してから、次のようにします。
someMapper.Map(contactDto).To<Contact>();
ビューはエンティティのクラスに結合されたクラスに結合されるため、単純に Contact クラスを使用するよりもこれがどれほど優れているかわかりません。したがって、一方のすべての変更を他方に複製する必要があります。私の見解では、「中間」オブジェクトは複雑さを追加するためだけに存在し、実際の価値はありません。「フリーサイズ」の解決策がないことは知っていますが (中間オブジェクトを使用することが理にかなっている場合もあります)、このようなコードを追加する必要は本当にあるのでしょうか? 本当のメリットとは?