У меня есть уровень DTO для передачи данных между уровнем API, уровнем данных и другими У меня вопрос по шаблону проектирования DTO в C#
Пример:
public class ProductDTO{
public int Id {get;set;}
public string Name {get;set;}
public decimal Price {get;set;}
public int CategoryId {get;set;}
public string Desc {get;set;}
}
Должен ли я разделить этот ProductDTO для CRUD?
Пример:
public class ProductInsertDTO
{
public string Name {get;set;}
public int CategoryId {get;set;}
}
для ProductDTO (500 байт) и ProductInsertDTO (293 байт) при передаче данных
Я всегда проектирую с одним объектом, но если я разделю dto, будет ли производительность системы лучше?
Я так не думаю, тогда вы создадите несколько классов для одного объекта, что увеличит размер приложения. Постарайтесь нормализовать и использовать объекты как можно чаще. На мой взгляд, вы можете создать абстрактный или суперкласс и расширить до него объекты. Подобно абстрактному классу Insert, вы сможете извлекать только те данные, которые требуются для вставки.
Спасибо @progrAmmar, попробую. у тебя есть образец?





Нет. Для таких небольших объемов данных накладные расходы сети представляют собой гораздо большую проблему. Практическое правило: избегайте «болтливого» общения. Лучше обменять больше за один звонок, чем разбить его на несколько звонков.
Но тогда вы получаете 2 объекта. Зачем тебе это нужно?