我在尝试提出映射方面遇到了问题。
我有一个电话课。
public partial class Phone
{
public virtual PhoneType Type { get; set; }
public virtual string AreaCode { get; set; }
public virtual string Number { get; set; }
public virtual string AdditionalInfo { get; set; }
}
public enum PhoneType
{
Mobile,
Landline,
Work,
ThirdParty
}
此类用于我的Customer类。
客户最多可以拥有3部手机。
public class Customer
{
public virtual int Id;
public virtual string FullName;
public virtual Phone Phone1;
public virtual Phone Phone2;
public virtual Phone Phone3;
}
但是那时存在持久性问题。我想将数据库中的这些值存储/恢复为字符串
public partial class Phone
{
public const string valuesSeparator = ";";
public override string ToString()
{
int intType = (int)(this.Type);
string strType = intType.ToString();
return
strType + valuesSeparator +
this.AreaCode + valuesSeparator +
this.Number + valuesSeparator +
this.AdditionalInfo;
}
public Phone(string fromDB)
{
string[] values = fromDB.Split(valuesSeparator[0]);
if (values.Length != 4)
{
throw new ArgumentException();
}
string strType = values[0];
int intType = int.Parse(strType);
this.Type = (PhoneType)intType;
this.AreaCode = values[1];
this.Number = values[2];
this.AdditionalInfo = values[3];
}
}
除此之外,我对这些东西很陌生。但我无处可寻找答案:我如何在FluentNHibernate中映射这个?
如何告诉NHibernate / FluentNHibernate,当持久化时,应该将其作为字符串加水/脱水?
这不应该是平凡的事吗?或者我的新手在这里错过了标记?