UI
Interfața UI a frameworkului Erp Core gestionează automat afișarea colecțiilor de enumerări. Controlul poate fi afișat ca search help sau list box, folosind valoarea searchHelp ori listBox pentru atributul UiDisplayAs al proprietății. Fără acest atribut, controlul implicit este listBox.
Lista de enumerări afișată ca list box (implicit)
Lista de enumerări afișată ca search help
O singură valoare enum este afișată implicit ca combo box. Prin atributul UiDisplayAs al proprietății poate fi ales alt control pentru o referință unică, de exemplu searchHelp.
Modelarea datelor
Enumerările sunt gestionate de Entity Framework ca numere întregi. Pentru o singură valoare referită de o entitate, folosește o proprietate enum obișnuită:
public ErpCalendarWeekDay ErpCalendarWeekDay { get; set; }
Valoarea va fi stocată ca int în baza de date și gestionată automat de Entity Framework.
Pentru a stoca o listă de valori enum într-o entitate, păstrează o listă de numere întregi și mapeaz-o la lista de enumerări în definiția entității.
Exemplul următor, extras dintr-o entitate, arată stocarea unei liste de enumerări:
... /// <summary> /// The BYDAY rule part specifies a COMMA-separated list of days of /// the week; SU indicates Sunday; MO indicates Monday; TU indicates /// Tuesday; WE indicates Wednesday; TH indicates Thursday; FR /// indicates Friday; and SA indicates Saturday. /// </summary> [System.Text.Json.Serialization.JsonIgnore] [Newtonsoft.Json.JsonIgnore] public List<int> ByDay { get; set; } /// <summary> /// Proxy for List<CalendarWeekDay> /// </summary> [NotMapped] [UiFieldGroup(RULES, 130)] public List<ErpCalendarWeekDay> ByDay_ { get => EnumExtensions .ToEnumMembersList<ErpCalendarWeekDay>(this.ByDay); set => this.ByDay = EnumExtensions .ToInt32List<ErpCalendarWeekDay>(value); } ...
În acest exemplu, valorile întregi sunt ascunse la serializare, fiind serializate valorile convertite. La deserializare, enumerările setează valorile întregi.
Exemplul folosește metode ErpCore din pachetul ErpExtensions.