Создаем перечисление:
public enum ExportImportEnum : byte {
Import = 1,
Export = 2
}
Реализуем класс для получения данных. Он должен быть унаследован от NHibernate.Type.EnumStringType .
public class ExportImportEnumType : EnumStringType <ExportImportEnum>
{
public ExportImportEnumType()
: base ()
{
}
public override object GetValue(object code)
{
return (ExportImportEnum)code == ExportImportEnum.Import ? "I" : "E";
}
}
Перегрузка метода object GetValue(object code) позволяет возвращать в БД значения в зависимости от введеных данных.
Перегружаем также метод GetInstatce(object code) чтобы реализовать обратное приведение, из БД в объект.
public override object GetInstance(object code)
{
return (string)code == "I" ? ExportImportEnum.Import : ExportImportEnum.Export;
}
Настраиваем связывание.
Map(x => x.EI, "EI").Length(1).CustomType<ExportImportEnumType>();