2012-07-11 21 views
7

Trong lớp tôi có những setters/getters:Làm thế nào để thiết kế lớp học xung quanh giá trị null từ cơ sở dữ liệu?

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 là một loại không nullable. Vì vậy, khi tôi lấy dữ liệu của mình từ cơ sở dữ liệu kế thừa của mình mà tôi chuyển tới hàm tạo lớp, tôi gặp lỗi khi StartDate là null.

Tôi nên thiết kế như thế nào?

Cảm ơn Eric

Trả lời

14

Bạn có thể tạo bất kỳ cấu trúc nào có thể bắt đầu bằng .NET 2.0.

public DateTime? StartDate { get; set; } 

Lưu ý ?. Một nhà điều hành trình biên dịch của nó để thực hiện Nullable<DateTime>.

Khi kéo nó ra khỏi người đọc, bạn có thể làm điều này

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

Dưới đây là một số chi tiết thông tin về các loại nullable: http://www.codeproject.com/Articles/275471/Nullable-Types-in-Csharp-Net

+0

@NominSim Không bạn làm. 'DateTime' là một kiểu giá trị. –

+0

Rất tiếc. Bạn đúng. – NominSim

+0

@ DanielA.White ['Nullable ' cũng là một loại giá trị] (http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx), nhưng phải có một số gubbins đặc biệt tiếp tục được sử dụng với 'as' giống như vậy, có khả năng các gubbins tương tự cho phép bạn gán' null' cho nó. –

Các vấn đề liên quan