У меня была похожая проблема.
Более простое решение, которое я нашел, это расширить CharBooelanType из NHibernate и использовать новый тип в отображении.
Было бы так:
using NHibernate.Type;
using NHibernate.SqlTypes;
namespace MyAssembly.MyNamespace
{
public class NewBoolType : CharBooleanType
{
public NewBoolType()
: base(new AnsiStringFixedLengthSqlType(1)) { }
protected override string TrueString
{
get { return "N"; }
}
protected override string FalseString
{
get { return "Y"; }
}
public override string Name
{
get { return "inverted_bool"; }
}
}
}
И отображение будет таким:
<property name="MyProperty" column="MyColumn" type="MyAssembly.MyNamespace.NewBoolType, MyAssembly" />