使用FluentNHibernate进行电话映射

时间:2012-10-16 17:56:48

标签: nhibernate fluent-nhibernate

我在尝试提出映射方面遇到了问题。

我有一个电话课。

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,当持久化时,应该将其作为字符串加水/脱水?

这不应该是平凡的事吗?或者我的新手在这里错过了标记?

0 个答案:

没有答案