Моя таблица:
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).