2012-06-05 6 views
3

ASP.Net 4 EF 4.3.1 코드 첫 마이그레이션을 사용하고 있습니다.EF 마이그레이션 : DateTime 열을 추가 할 수 없습니다.

기존 모델 클래스가 있습니다. 나는에 속성을 추가했습니다 :

ALTER TABLE은 [을 MyTable] [LastUpdated] [날짜] NOT NULL DEFAULT를 ADD : 내가 얻을 -verbose

public DateTime LastUpdated { get; set; } 

내가 갱신 데이터베이스 -force를 실행하면 '0001-01-01T00 : 00 : 00.000'
System.Data.SqlClient.SqlException (0x80131904) : varchar 데이터 형식을 datetime 데이터 형식으로 변환하면 범위를 벗어났습니다.
명세서가 종료되었습니다.

이것은 생성 된 SQL에서 사용되는 묵시적 기본값과 관련이 있습니다. 일을 초기화하는 데 사용 된 varchar가 데이터가 손실되었다고 불평하는 것으로 보입니다.

+0

내 기본값이 아닙니다. - EF 코드 첫 번째 마이 그 레이션은 새로운 null이 아닌 DateTime 속성/열에 대해이 SQL을 자동으로 생성합니다. –

+0

SQL 'DateTime' 데이터 유형의 최소값은 1 월 1753입니다. .NET Datetime의 최소값은 1입니다. 불행히도 충돌은 일반적입니다. –

답변

6

null이 아닌 날짜 시간 열을 추가 할 수없는이 문제에 대한 대답은 날짜 시간 컬럼에 지정이 기본값을지고의 문제와 동일합니다 : 입니다 EF 4.3.1 Migration Exception - AlterColumn defaultValueSql creates same default constraint name for different tables

,이 끊어진 것 의도 곳이 null 얻을

public DateTime? LastUpdated { get; set; } 

PM> update-database 

그런 다음 다시 마이그레이션 :

public DateTime LastUpdated { get; set; } 

PM> update-database 
오랜 시간이, 당신은 널 (NULL) 그것으로 마이그레이션하여 해결할 수 있습니다
관련 문제