C# 클래스에는 SQL Server 데이터베이스의 열에 매핑하기 위해 코드 우선을 사용하는 날짜/시간 속성이 있습니다. 이 날짜는 절대로 기본 날짜 또는 날짜 (DateTime)보다 작거나 근접하지 않습니다. System.DateTime
이라는 속성을 입력하면 MyProp == default(DateTime)
으로 설정되지 않은 값을 항상 확인할 수 있습니다.Nullable DateTime 대 기본 (DateTime)에 의존
(null이 허용되지 않음) DateTime
대신 nullable DateTime?
으로이 속성을 입력 할 것인지 여부를 묻는 설득력있는 이유가 있습니까? 왜?
경우에 따라 Nullable을 사용할 수있는 옵션이 없습니다. 예를 들어, 직렬화 문제 일 수 있습니다. 모든 DateTime? 인스턴스를'DateTime' (null => MinValue)로 변환하고 비 직렬화시 null로 변환하는 경향이 있습니다 ... –
관습에 따라 완전히 다른 것을 의미하는 *** 잘못된 *** 값을 저장 중입니다. *는 현재 관리 할 수있는 유지 관리 위험이지만 6 개월 내에 (또는 코드를 유지해야하는 낯선 사람) 당신을 물을 수 있습니다. 한편, 'null'은 모호하지 않습니다. – spender
@spender 좋은 지적. – HappyNomad