J'ai une base de données avec un champ 'LS_GENDER' qui stocke les genres comme 'M' ou 'F'.FluentNHibernate: comment accéder au champ dont le type de données est différent de la propriété
Mon application utilise une énumération appelée genre à travailler avec les sexes.
Mon entité a le champ suivant et la propriété:
private string _gender;
public Gender Gender { get { return GetGenderFromString(_gender); } };
private Gender GetGenderFromString(string strGender)
{
switch (strGender.ToLower())
{
case "f":
return Gender.Female;
case "m":
return Gender.Male;
default:
return Gender.Unknown;
}
}
Comment puis-je mapper cela avec FluentNHibernate? Je suis en train d'utiliser l'accès sur le terrain (comme indiqué ci-dessous):
Map(x => x.Gender).Column("LS_GENDER").Access.CamelCaseField(Prefix.Underscore);
mais je reçois l'erreur « ne peut pas analyser F comme genre ». Je pense que NHibernate devient confus parce que la propriété et le champ ne sont pas du même type.
Comment dois-je mapper ce?
J'ai résolu ceci en utilisant IUsertype. Aim Kai a également parlé de IUserType, mais moins directement. – David