У меня есть модели в моем проекте .Net Core, где я хочу иметь список Enum.
public class CartOptional
{
[Required]
public Guid Id { get; private set; }
public int Price { get; set; }
public string CartId { get; set; }
public string Type { get; set; }
public List<FieldValidator> Validators { get; set; }
public string Label { get; set; }
public string Value { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.Now;
public DateTime UpdatedAt { get; set; } = DateTime.Now;
}
FieldValidator действительно является Enum
EF верните мне эту ошибку:
Не удалось отобразить свойство CartOptional.Validators, так как оно имеет тип «Список», который не является поддерживаемым типом примитива или допустимым типом объекта. Либо явным образом сопоставьте это свойство, либо игнорируйте его, используя атрибут «[NotMapped]» или «EntityTypeBuilder.Ignore» в «OnModelCreating».
Я пробовал другое решение, например добавление [Serializable]
. Но, похоже, ничего не работает. Я не понимаю, почему система не может принять базовый int
РЕДАКТИРОВАТЬ:
Я попробовал решение с аннотацией [Flags]
, вот так
[Flags]
public enum FieldValidator
{
REQUIRED = 1,
ALPHABETIC = 2,
NUMERIC = 4,
EMAIL = 8,
PHONE = 16,
DATE = 32
}
А в родительском классе у меня public FieldValidator Validators { get; set; }
Но теперь я пытаюсь POST новый элемент, и я получаю эту ошибку, когда я пытаюсь проверить ModelState
:
"tierList [0] .fieldList [0] .validators": [
"Неожиданный токен StartArray при разборе enum. Путь 'tierList [0] .fieldList [0] .validators', строка 24, позиция 25."
]
Что такое token StartArray
?