如何将显示名称添加到EF代码优先的继承属性?

时间:2011-12-06 17:26:42

标签: entity-framework inheritance ef-code-first metadata

我有一个继承自TimeBlock的类运动。 TimeBlock是为我提供的,我无法改变它。 TimeBlock提供了一个DurationDescription属性,我想显示它。但是我总是使用LabelFor等,这意味着我需要在DurationDescription上有显示元数据,所以我可以有"持续时间描述"等

如何使用EF Code First将元数据添加到继承的类。我应该使用好友元数据吗?

1 个答案:

答案 0 :(得分:4)

是的,您需要使用MetadataTypeattribute。它也可以与继承一样工作,就像部分类一样:

public class Base
{
    public string Prop1 { get; set; }
}

[MetadataType(typeof(ClassMetadata))]
public class Class : Base
{
    [DisplayName("My prop 2")]
    public string Prop2 { get; set; }

    class ClassMetadata
    {
        [DisplayName("My prop 1")]
        public string Prop1 { get; set; }
    }
}

在用户界面上,属性将显示为"My prop 1""My prop 2"