Как правило, мы используем null
для обозначения «неуказанного» или «несуществующего» или «неприменимого». Таким образом, в случае фильтра имеет смысл разрешить null, потому что это означает «отсутствие фильтрации».
Кроме того, перечисление называется Regions
, вероятно, имеет такие значения, как Northeast
, Southeast
, Midwest
, Southwest
и West
. Теперь, пожалуйста, поправьте меня, если я ошибаюсь, но я не думаю, что в США есть какой-то регион под названием «Все». Во время моего многолетнего пребывания там я услышал, как погодник на телевидении говорил о погоде на Западе, о погоде на юго-востоке и т. Д., Но никогда не о погоде в каком-то месте под названием «Все». Поэтому я склонен полагать, что такого региона нет. Поэтому, в том числе «Все» в перечислении регионов, это взломать. Внезапно перемычка Regions
не касается регионов; вместо этого речь идет о регионах и/или их фильтрации. Сдвиги в значении такого рода - это то, о чем нужно знать в программировании и, как правило, избегать.
Имена перечислений должны быть UpperCamelCase – SLaks
Я чувствую, что это проблема несоответствия объектно-реляционного импеданса. В стороне приложения имеет смысл иметь такие опции, как «Все», «Все регионы Западного побережья» и «Все регионы Восточного побережья». Тем не менее, я часто использую enum casted to int непосредственно как SqlParameter. В этих методах мне нужно будет проверить каждый из этих экземпляров и преобразовать их в правильный SQL. (Вместо «и region = 1» мне понадобится »и region in (2, 4, 5)»). К сожалению, SqlParameters также плохо работают со списками. – Serinus