2010-04-24 2 views
4

아주 간단한 Users 테이블을 매핑하고 있는데 SQL Server에서 nullable로 정의 된 'LastLoginDate'라는 열이 있습니다.Fluent NHibernate SqlDateTime 오버플로 예외

public Users { 
    Id(x => x.UserId); 
    Map(x => x.UserName); 
    ... 
    ... 
    Map(x => x.LastLoginDate).Nullable(); 
} 

을하지만 매번 난 내가 항상 SqlDateTime 오버 플로우 예외가, 프로그래밍 방식이 엔티티를 저장하려고 :

내 매핑은 다음과 같습니다. 이 열에 'null'이 포함 된 수동 SQL 문을 입력하면 작동합니다. 이 속성을 주석 처리하면 올바르게 작동합니다.

무엇이 문제 일 수 있습니까 ??? 사전에

감사합니다!

답변

12

귀하의 실체는 다음과 같이한다 :

public class User 
{ 
    public virtual DateTime? LastLoginDate {get;set;} 
    // etc 
} 

그런 다음지도가 제대로 작동합니다.

편집 : DateTime 이후의 ?은 Nullable임을 나타내며 Nullable<DateTime>의 약식입니다. 이 오류의 원인이 아니라면 Fluently.Configure가 SqlServer의 올바른 버전을 지정하는지 확인하고 싶을 수 있습니다.

+0

와우, 나는 지금 어리 석다. ... 때로는 너무 사소하고 무언가를 잊어 버리는 것을보기가 너무 어렵다. 고마워! – gillyb

+0

문제 없습니다, 항상 해드립니다. 때로는 두 번째 눈 쌍이 필요합니다. –

+0

정확히 동일한 문제가 발생하지만 DateTime nullable을 사용하면 간단히 작동하지 않습니다. 무엇이 잘못 될 수 있는지 확실하지 않습니다. – Jonathan