2009-02-27 2 views
15

NHibernate 2의 주요 변경 사항 중 하나는 NHibernate.Nullables가 더 이상 지원되지 않는다는 것입니다. 따라서 nullable DateTime을 매핑하기 위해 매핑 파일에서 무엇을 사용합니까? 유형? 즉를 들어 :NHibernate 2. * 매핑 파일 : nullable DateTime 유형 (DateTime?)을 정의하는 방법?

는 당연히 작동하지 않습니다 지원

<property name="CreateDate" column="CreateDate" type="DateTime?" not-null="false" /> 

그리고 더 이상을 :

<property name="ModifiedDate" column="ModifiedDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" not-null="false"/> 

을 나는 그것이 그리 명확해야합니다 알고,하지만 난 그것을 찾는 아니에요!

답변은 다음과 같이 간단합니다 : NHibernate는 문제의 클래스를 반영하여 속성의 반사 된 유형이 DateTime인지 알아냅니다. 모두 자체적으로

감사합니다. @ Justice!

답변

28
<property name="CreatedDate" /> 
  • 은 NHibernate에 문제의 클래스를 통해 반영의 유형 반사 속성 자체 DateTime? 모든 것을 발견 할 것입니다.
  • 당신이 달리 말하지 않는 한, NHibernate는 기본적으로 컬럼 이름이 프로퍼티 이름과 같다고 가정 할 것이다.
  • 당신이 달리 말하지 않는 한, NHibernate는 어떤 프로퍼티도 nullable (not-null="false")이라고 가정 할 것이다. 당신이 정말로 원하는 경우

, 그것은 ... 같은

<property name="CreatedDate" type="System.Nullable`1[[System.DateTime, mscorlib]], mscorlib" /> 
+0

많은 덕분에 뭔가해야한다. 나는 2, 3 번을 알고 있지만 처음에는 본 적이 없다는 것을 믿을 수 없다. 간단하다. – Ted

+0

FWIW, 매핑 속성과 같은 것을 사용하는 것이 훨씬 쉽습니다.이 속성은'[Property (Name = "CreatedDate", TypeType = typeof (DateTime?))] –

관련 문제