2010-03-06 5 views
0

NULL DateTime 필드가있는 사용자 지정 Linq 데이터 컨텍스트 사용 중 ...?

항목으로 정의 테이블 I 부재와 맞춤의 DataContext가

...

[Table(Name="Entry")] 
public class Entry 
{ 
    [Column] 
    public DateTime MyDate { get; set; } 
} 

Entry 표의 MyDate 필드는 NULL이 될 수있다.

내가 널 값을 할당 할 수 없습니다

항목의 모든 레코드를 검색하지만이 NULL의 MyDate가 필드를 발견 할 때, 나는 다음과 같은 세부 정보가 System.InvalidOperationException 오류가 발생하는 매우 간단한 LINQ 쿼리를 가지고 ... 형식이 System.DateTime 인 구성원으로 nullableable 값 형식입니다.

NULL이 발생할 때 기본 DateTime (예 : 0 ticks)을 설정하는 방법이 있습니까?

답변

0

public DateTime? MyDate { get; set; }으로 신고 할 수 있습니까? 당신이 실제로 어느 null이 될하지 않으려면

, 당신은이 작업을 수행 할 수 있습니다 DB의 값이 NULL 때마다

private DateTime _MyDate; 
public DateTime? MyDate 
{ 
    get { return _MyDate; } 
    set { _MyDate = value.GetValueOrDefault(); } 
} 

이 당신에게 0 진드기를 줄 것이다.

+1

이런 종류의 속성을 사용하는 것은 실제로 나쁜 습관입니다. 데이터를 다시 데이터베이스에 저장하고 오류가 발생합니다. 또한 0을 사용하기로 결정하면 DateTime으로 정의 할 필요가 없으므로이 또한 의미가 없습니다. 더 이상. – LukLed

+0

질문은 "NULL이 발생하면 기본 DateTime (예 : 0 ticks)을 설정하는 방법이 있습니까?" 이것은 그 질문에 대한 대답입니다. 이 객체를 DB에 다시 쓰지 않고 null을 허용하지 않는 다른 객체로 전달하려고 할 가능성이 있습니다. – Gabe

+0

@gabe : 그래서 앙이 하향 회선에 응답했다, 미안. 그건 내가 아니야. 나는 Stackoverflow에 어떤 downvote도주지 :) 당신은 내 페이지를 확인할 수 있습니다. 당신은 질문에 대답했지만, 질문은 나쁜 접근의 결과 였고 어떤 사람들이 당신의 해결책을 사용하기로 결정했을 때, 그는 결과에 대해 알지 못하고 있습니다. 나는 그들에 대해 썼다. – LukLed

3

날짜가 데이터베이스에서 NULL이면 응용 프로그램에서 날짜를 0으로 바꾸면 안됩니다. db에 0을 쓰면 실패하거나 값이 무효로 변경됩니다. 당신은 추가

[Table(Name="Entry")] 
public class Entry 
{ 
[Column] 
public DateTime? MyDate { get; set; } 
} 

? 날짜 시간과 날짜 시간을 대체 할 수

? 속성 Nullable을 만듭니다. 데이터베이스에서 nullable이 될 수 있으므로 모델에서 nullable이어야합니다.

[Column] 
public DateTime? MyDate { get; set; } 

또는 :

2

내 선호 된 접근이 경우에 널 (NULL) 날짜 시간입니다

public Nullable<DateTime> MyDate { get; set; } 

가 아닌 옵션이?

관련 문제