使用nhibernate CreateSQLQuery获取的结果的枚举错误

时间:2018-02-13 16:02:08

标签: c# nhibernate

在下面的语句中,nhibernate抛出异常(Message =“TipoSanguineo必须实现NHibernate.UserTypes.IUserType”; InnerException = {“无法将类型为'Focus.Domain.Enums.TipoSanguineo'的对象强制转换为'NHibernate.UserTypes' .IUserType'。“}):

IList<EmpregadoModel> sources = Repositorio.GetCurrentSession()
           .CreateSQLQuery("select Nome, TipoSanguineo")
           .AddScalar("TipoSanguineo", NHibernateUtil.Custom(typeof(Proj.Domain.Enums.TipoSanguineo)))
           .SetResultTransformer(Transformers.AliasToBean<EmpregadoModel>())
           .List<EmpregadoModel>();

如何在CreateSQLQuery中将数据库字段(TipoSanguineo)映射到枚举(Proj.Domain.Enums.TipoSanguineo)?

我的EmpregadoModel类:

public class EmpregadoModel : EntityBase
{
    public virtual string Nome { get; set; }
    public virtual TipoSanguineo TipoSanguineo { get; set; }
}

My Enum:

public enum TipoSanguineo
{
    [Description("A+")]
    APositivo = 1,
    [Description("A-")]
    ANegativo,
    [Description("B+")]
    BPositivo,
    [Description("B-")]
    BNegativo,
    [Description("O+")]
    OPositivo,
    [Description("O-")]
    ONegativo,
    [Description("AB+")]
    ABPositivo,
    [Description("AB-")]
    ABNegativo
}

0 个答案:

没有答案