首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fluent-NHibernate -约定忽略的组件属性属性

Fluent-NHibernate -约定忽略的组件属性属性
EN

Stack Overflow用户
提问于 2010-03-31 18:49:13
回答 1查看 1K关注 0票数 1

我有一个具有许多属性的组件,这些属性具有不同的属性

通常,当这些属性被添加到普通旧域对象中时,它们会被我的自定义AttributeConventions拾取。

对于零部件特性,则不是。这些需要一些额外的布线吗?

例如:

代码语言:javascript
复制
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;}
}

我得到了一个包含Color和ComponentName列的表MyClass

Color是nvarchar(50),而ComponentName是nvarchar(255) (默认值)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-31 21:56:00

因此,依靠内置的魔术将NHibernate.Validators LengthAttribute绑定到您的表列的长度似乎不是一个好主意。神奇之处在于,对于bog标准类,这会被Fluent自然地接受。为了强制它,我创建了自己的约定来处理它:

代码语言:javascript
复制
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);
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2552196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档