Я создаю .NET Core Web API и хочу вызвать конечную точку, отправляющую заказ клиента. Идентификатор клиента приходит в качестве параметра маршрута. В теле запроса можно отправить массив объектов. Каждый объект содержит идентификатор продукта и его количество. Но это поле является необязательным, возможны и пустые счета (продукты могут быть добавлены позже).
Поэтому я начал с этого DTO
public class CreateCustomerOrderByIdDto
{
[FromRoute]
public uint Id { get; set; }
[FromBody]
public OrderPosition[] OrderPositions { get; set; }
}
public class OrderPosition
{
[Range(1, uint.MaxValue)]
public uint ProductId { get; set; }
[Range(1, uint.MaxValue)]
public uint Amount { get; set; }
}
Этот запрос DTO должен сделать OrderPositions
поле необязательным, но при добавлении элемента для него требуются оба свойства. Я хочу установить значение по умолчанию, OrderPositions
если оно отсутствует, поэтому я подумал, что эта аннотация данных сделает это
[DefaultValue(new OrderPosition[0])]
К сожалению, я получаю это сообщение об ошибке
Аргументом атрибута должно быть константное выражение 'typeof()' выражение или создание массива выражение типа параметра атрибута
Так как же отметить это поле как необязательное и установить значение по умолчанию?