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 ?