내 테이블 :어떻게 데이터베이스
create table MyTable (
Id int identity(1,1) not null,
MyStatus char(2) not null
)
insert into MyTable(MyStatus) select 'A'
클래스와 열거 :
이public class MyTable
{
public virtual int Id { get; set; }
public virtual MyTableStatus MyStatus { get; set; }
}
public enum MyTableStatus
{
A,
B
}
매핑 : 나는 다음 테스트를 실행하면
public MyTableMap()
{
Id(x => x.Id);
Map(x => x.MyStatus);
}
, 내가 얻을 System.FormatException : 입력 문자열의 형식이 올바르지 않습니다 ...
[Test]
public void Blah()
{
MyTable myTable = Session.Get<MyTable>(1);
Assert.That(myTable.MyStatus, Is.EqualTo(MyTableStatus.A));
}
열거 형을 데이터베이스의 문자열 표현에 매핑하는 올바른 방법은 무엇입니까?
수정 - 다른 응용 프로그램에서도 사용하기 때문에 쉽게 수정할 수없는 기존 데이터베이스에 응용 프로그램을 쓰고 있습니다. 그래서 데이터베이스의 일부 필드 (응용 프로그램에서 열거 형으로 나타 내기를 원함)는 int 유형이고 char (2) 유형 중 일부입니다.
다른 열거 형에 대해 문자열과 int를 사용하는 데이터베이스 작업을 포함하여 알고 싶습니다. (오직 int로 작업 한 경우에만) – Phill