我有一个具有大量具有各种属性的属性的一个分量

通常,当这些属性被添加到它们通过我的自定义AttributeConventions拾起一个普通的旧域对象。

有关的组件属性它们不是。是否有必要对这些一些额外的布线?

e.g。

public class Component
{
    [Length(Max=50)]
    public virtual string Name {get; set;}
}

public class MyClass
{
    public virtual Component Component {get; set;}

    [Length(Max=50)]
    public virtual string Color {get; set;}
}

我得到列色&组件名

的表MyClass的

颜色是一个nvarchar(50),同时组件名是一个nvarchar(255)(默认值)

有帮助吗?

解决方案

行,所以依靠内置的魔法联系的NHibernate.Validators LengthAttribute到表列的长度似乎不是一个好主意。神奇的是,对于沼泽标准类此得到由自然流利拾起。为了迫使它我已经创建了自己的公约来处理它:

public class LengthConvention : AttributePropertyConvention<LengthAttribute>
    {
        protected override void Apply(LengthAttribute attribute, IPropertyInstance instance)
        {
            // override the default column length
            if (attribute.Max != default(int)) instance.Length(attribute.Max);
        }
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top