Как и все в дизайне, все зависит от ваших потребностей.
- Если вам нужно часто видеть и
привязать к дочерним свойствам, и вы хотите
сделать это как можно проще для
разработчики использовать ваши DTO, вы можете
хочу явные фабричные методы, чтобы дать
Вы полностью раскрыли дочерние свойства.
- Если вы хотите простоты кода, не
расширить свойства внешнего ключа и
просто позвольте разработчикам заполучить ребенка
объект / коллекции они хотят по ключу
по мере необходимости.
Вы можете столкнуться с проблемами в рекурсии; Вы также расширяете все свойства внешнего ключа объекта Department? Что если есть ссылка на другого EmployeeDTO в подклассе Department?
Microsoft Entity Framework, как и другие популярные платформы бизнес-объектов, обрабатывает эту концепцию путем отложенной загрузки - извлекает полностью расширенное дочернее свойство, только если оно вызвано кодом. Это, вероятно, наиболее гибкое решение, но имеет небольшие издержки / задержки, поскольку дочерние свойства не могут быть получены при том же вызове базы данных, что и родительский объект. Это, конечно, не просто DTO.