2009-06-02 2 views
0

NHibernate를 사용하여 열거 형을 올바르게 매핑하는 것과 관련된 몇 가지 질문을 보았습니다.NHibernate에 Enum을 매핑하여 스키마 내보내기에 DB 필드를 올바르게 만드는 방법은 무엇입니까?

This article 제프 팔레르모 (Jeff Palermo)가 사용자 지정 유형을 만들어 올바르게 수행하는 방법을 보여주었습니다. 내 dev주기 동안 내 DB를 만들려면 스키마 내보내기를 사용하지만이 메서드는 내 내보내기 문을 중단합니다. 내보내기 할 때 열 유형을 지정하는 방법이 있습니까? 여기에 드디어

<property name="OperatorCode" column="OperatorCode" type="OperatorCodeType" /> 

그리고 :

여기
public class OperatorCodeType:EnumStringType 
{ 
    public OperatorCodeType():base(typeof(OperatorCode),20) 
    { 

    } 
} 

내 매핑 파일 내 재산은 다음과 같습니다

public enum OperatorCode 
{ 
    CodeA, 
    CodeB, 
    CodeC, 
    CodeD 
} 

내 사용자 정의 유형입니다 : 여기

내 열거 코드 해당 속성에 대한 클래스 선언 :

public virtual OperatorCode OperatorCode { get; set; } 

이 작업을 수행 할 수 있습니까?

답변

1

테스트하지는 않았지만 속성 내에서 Column 선언을 사용하여 SQL 유형을 지정할 수 있습니다. 워드 프로세서에서 예 :

<property name="Foo" type="String"> 
    <column name="foo" length="64" not-null="true" sql-type="text"/> 
</property> 

이이 문자열 부여,하지만 당신은 텍스트 또는 NVARCHAR, 또는 무엇이든 작동으로 OperatorCodeType의 유형, 열 SQL 형과 그것을 시도 할 수 있습니다.

시도해 보려면 알려주세요. 내 dev에 기계 근처에 없습니다.

+0

채드, 이것은 매력처럼 작동했습니다. 속성 노드를 열 노드와 분리 한 적이 한번도 없었습니다.하지만 Fluent NHibernate가 코드를 통해 수행 할 수 있음을 알았 기 때문에 .hbm 파일에서이를 수행 할 수있는 방법이 있어야한다고 생각했습니다. 열 선언을 통해보다 세밀한 제어가 가능합니다. 고마워요! –

+0

문제 없으니 기꺼이 도와 드리겠습니다. –