Adnotare de date cu valoare implicită pentru un tablou gol

voturi
25

Creez o API .NET Core Web și doresc să apelez la un punct final care trimite o comandă pentru clienți. ID-ul clientului este un parametru de rută. În corpul de solicitare este posibil să trimiteți o serie de obiecte. Fiecare obiect conține id-ul produsului și cantitatea acestuia. Dar acest câmp este opțional, sunt posibile și comenzi goale (produsele pot fi adăugate ulterior).

Așa că am început cu acest 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; }
}

Această solicitare DTO ar trebui să creeze OrderPositions câmp opțional, dar când adăugați un element, ambele proprietăți sunt necesare pentru acel articol. Vreau să stabilesc o valoare implicită pentru OrderPositions dacă lipsește, am crezut că această adnotare a datelor o va face

[DefaultValue(new OrderPosition[0])]

Din păcate, primesc acest mesaj de eroare

Un argument de atribut trebuie să fie o expresie constantă, expresia 'typeof ()' sau expresie de creare a matricei a unui tip de parametru de atribut

Deci, cum marcați câmpul ca opțional și setați o valoare implicită?

Întrebat 04/06/2020 la 23:02
sursa de către utilizator
În alte limbi...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more