如何使用Fluent NHibernate自动化“值对象”(组件)封装一个值?

时间:2012-04-10 07:13:05

标签: c# nhibernate fluent-nhibernate domain-driven-design

我想创建小的单值«值对象»,以便为值赋予在域的上下文中有意义的名称,并结合不变量,如下所示:

public class Description
{
    private readonly string _value;     

    public Description(string value)
    {
        if (value.IsNullOrWhiteSpace() || value.Length > 256)
            throw new ArgumentException();

        _value = value;
    }

    public static implicit operator Description(string value)
    {
        return new Description(value);
    }

    public static implicit operator string(Description description)
    {
        return description._value;
    }
}

我可以找到关于自动映射«value object»(或NHibernate术语中的“组件”)的所有示例都使用公共属性。

如果没有自动映射,上面的«值类型»将被明确映射,如下所示:

mapping.Component(_ => _.Description, m => m.Map(Reveal.Member<Description>("_value")).Column("Description"));

0 个答案:

没有答案