Generalmente, utilizamos null
para indicar 'no especificado' o 'inexistente' o 'no aplicable'. Entonces, en el caso de un filtro, tiene sentido permitir nulo, porque significa "no filtrar".
Además, una enumeración llamada Regions
probablemente tiene valores como Northeast
, Southeast
, Midwest
, Southwest
y West
. Ahora, por favor corrígeme si estoy equivocado, pero no creo que haya ninguna región llamada "Todos" en los Estados Unidos. Durante mi estadía de varios años allí escuché al meteorólogo en el televisor hablando del clima en el oeste, y del clima en el sudeste, etc. pero nunca del clima en algún lugar llamado "Todos". Entonces, me inclino a creer que no existe tal región. Por lo tanto, incluir "Todos" en una enumeración de regiones es un truco. De repente, la enumeración Regions
no trata de regiones; en cambio, se trata de regiones y/o filtrado de las mismas. Los cambios en el significado de este tipo son algo a tener en cuenta en la programación y en general evitar.
Los nombres de Enum deben ser UpperCamelCase – SLaks
Siento que es un problema de desajuste de impedancia relacional de objeto. En el lado de la aplicación, tiene sentido tener opciones como "Todas", "Todas las regiones de la costa oeste" y "Todas las regiones de la costa este". Sin embargo, a menudo uso enum casted directamente en int como SqlParameter. En estos métodos, necesitaría verificar cada una de estas instancias y convertirlas a SQL apropiado. (En lugar de "y región = 1" necesitaría "y región en (2, 4, 5)"). Lamentablemente, SqlParameters tampoco funciona bien con las listas. – Serinus