2012-07-11 12 views
7

Nella mia classe ho questi setter/getter:Come progettare la classe attorno ai valori nulli dal database?

public int Id { get; set; } 
public String ProjectName { get; set; } 
public String ProjectType { get; set; } 
public String Description { get; set; } 
public String Status { get; set; } 
public DateTime StartDate { get; set; } 

DateTime è un tipo non nullable. Quindi, quando recupero i miei dati dal mio database precedente che passo al costruttore della classe, ottengo un errore quando StartDate è nullo.

Come dovrei progettare attorno a questo?

Grazie Eric

risposta

14

possibile rendere qualsiasi annullabile struct iniziando con .NET 2.0.

public DateTime? StartDate { get; set; } 

Avviso ?. È un operatore di compilazione per rendere Nullable<DateTime>.

Quando estraendola del lettore, si può fare questo

obj.StartDate = reader["StartDate"] as DateTime?; 

ecco alcune ulteriori informazioni sui tipi nullable: http://www.codeproject.com/Articles/275471/Nullable-Types-in-Csharp-Net

@NominSim
+0

Non si fa. 'DateTime' è un tipo di valore. –

+0

Whoops. Hai ragione. – NominSim

+0

@ DanielA.White ['Nullable ' è anche un tipo di valore] (http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx), ma deve avere alcuni gubbin speciali in corso da utilizzare con 'as 'like that, probabilmente lo stesso gubbins che ti permette di assegnare' null' ad esso. –