Обычно мы генерируем перечисления из базы данных.Мы используем CodeSmith , что позволяет нам создавать файлы проекта, которые могут легко восстанавливать перечисления по мере необходимости.
Иногда мы пошли другим путем, обычно для целей отчетности (когда существующие значения перечисления)сохраняются).
И, конечно, у нас есть перечисления, значения которых никогда не сохраняются.
Как правило, единственная причина для создания перечислений из базы данных - это если код должен принимать решения на основеих.Если вы просто хотите заполнить ComboBox и сохранить выбор пользователя, не генерируйте перечисление.
Очевидно, что принятие решений на основе перечислений (или строк), значения которых могут измениться, хрупко.Возможно, вы захотите включить даты истечения срока действия (или даты «от» и «до») в схему базы данных, чтобы существующие значения не удалялись.Фильтр значений с истекшим сроком при заполнении селекторов пользовательского интерфейса.Это также облегчает ссылочную целостность.
Как всегда в C #, вы должны знать, что значения перечисления могут выходить за пределы ожидаемого диапазона.Включите default
в ваш switch
.
Мы придумали вспомогательные классы для создания кэшированных списков поиска, которые облегчают их использование.
Я не рекомендую идти по этому пути,Если нужно, вот как мы это сделали.