流利,NHibernate的 - 组件属性的属性被忽略公约
-
23-09-2019 - |
题
我有一个具有大量具有各种属性的属性的一个分量
通常,当这些属性被添加到它们通过我的自定义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);
}
}
不隶属于 StackOverflow