Scrivo spesso codice che traduce le entità nel database in oggetti del dominio. Queste entità hanno spesso campi che sono vincolati e tradotti in enumerazioni negli oggetti del dominio. In alcuni casi, tuttavia, i campi possono essere nulli.
 Ad esempio, immagina di avere un'entità   PrintJob    con un campo   Status    che può essere   New   ,   Submitted    o   Completed    e un campo   Result    che può essere   Succeeded   ,   FailedNoPaper    o   FailedNoToner    ma può anche essere   NULL    se   Status    non è   Completed   . 
Da un lato, mi piace avere una mappatura uno-a-uno dei valori del campo entità ai valori enum dell'oggetto dominio, ma d'altra parte, in qualche modo sembra "migliore" avere sempre valori per le proprietà con tipi di enumerazione.
 La mia domanda è: è meglio rappresentare il valore del campo   Result    nel mio oggetto dominio come valore nullable (ad esempio   MyStatus?    in C # o VB.NET) che non ha alcun valore quando il campo entità corrispondente è    NULL   , o dovrei creare un valore enum speciale insieme agli altri, ad es    NoValue    o   Undefined   ?