Вопрос о дизайне для не допускающих обнуления перечислений и данных с нулевыми значениями - PullRequest
1 голос
/ 11 февраля 2020

В моем веб-приложении я использую модель со свойством Enum. Например:

public class SomeObject 
{
   public Guid ID { get; set; }
   public string Name { get; set; }
   public Color Color { get; set; }
}
public enum Color 
{
     blue,
     red
}

Цвет - это обязательная форма поля. При использовании EF Core на основе этой модели была создана таблица, в которой столбец Color не равен нулю.

Однако некоторые исторические данные c, которые я пытаюсь импортировать в таблицу, имеют нулевые значения для цвета.

С точки зрения дизайна, какое должно быть лучшее решение:

  1. Измените модель, чтобы сделать Color обнуляемым, и добавьте дополнительную проверку в пользовательском интерфейсе и внутри API для предотвращения нулевых значений.
  2. Добавить нулевое значение к самому Enum.
  3. Назначить какое-либо значение по умолчанию для импортированных данных с нулевым цветом.

Мне не нравятся какие-либо из этих опций, но что будет лучшим с точки зрения дизайна?

1 Ответ

0 голосов
/ 14 февраля 2020

Записи с null в столбце Color фактически представляют объекты неизвестных цветов. Следовательно, очевидное, что нужно сделать, это добавить значение Unknown к перечислению Color. Затем измените интерфейс, чтобы эти объекты отображались, но не сохранялись с цветом, установленным на «неизвестно».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...