Я обычно вижу людей, которые говорят, что вы не должны передавать сущности в свой View. Они говорят, что вы должны использовать 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, так как ваш View будет связан с классом, который связан с классом сущности. Таким образом, каждое изменение в одном должно копироваться в другое. С моей точки зрения, «средний» объект - это просто добавление сложности, но не реальная ценность.
Я знаю, что не существует решения «один размер подходит всем» (как иногда, использование среднего объекта имело бы смысл), но нужно ли нам добавлять такой код? Каковы реальные преимущества?