我使用流畅的NHibernate
访问数据表格时遇到异常NHibernate.dll中发生了'NHibernate.HibernateException'类型的异常但未在用户代码中处理
附加信息:无法将1解析为状态
我的员工实体中有Enum类型。
员工
public class Employee
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual DateTime DateOfBirth { get; set; }
public virtual string ContactNumber { get; set; }
//[JsonConverter(typeof(StringEnumConverter))]
public virtual State Status { set; get; }
public virtual DateTime LastModify { get; set; }
}
EmployeeMapping
public class EmployeeMap : ClassMapping<Employee>
{
public EmployeeMap()
{
Table("Employee");
Id(i => i.Id, m => m.Generator(Generators.GuidComb));
Property(p => p.Name, m =>
{
m.NotNullable(false);
m.Length(120);
});
Property(p => p.DateOfBirth, m => m.NotNullable(true));
Property(p => p.ContactNumber, m =>
{
m.NotNullable(false);
m.Length(12);
});
Property(p => p.Status, m => m.Column(y =>
{
y.NotNullable(true);
y.Default(0);
}));
Version(v => v.LastModify, m =>
{
m.Column(y =>
{
y.NotNullable(true);
y.Default("CURRENT_TIMESTAMP");
});
m.Type(NHibernateUtil.Timestamp);
m.Generated(VersionGeneration.Never);
});
}
}
State Enum
public enum State
{
Probationer ,
Permanent,
Contractor
}
请建议我如何删除例外。
答案 0 :(得分:2)
当我尝试使用Alexey的方法或以下方式通过代码使用NHibernate映射时:
Property(x => x.Command, o =>
{
o.Type<CommandType>();
});
我遇到了“必须实现IUserType”的映射错误。映射枚举的正确方法是:
Property(x => x.Command, o =>
{
o.Type<EnumType<CommandType>>();
});
答案 1 :(得分:0)
试试这个:
Apple TV