在下面的语句中,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
}