【问题标题】:How Do I Add Display Name To An Inherited Property With EF Code First?如何使用 EF Code First 将显示名称添加到继承的属性?
【发布时间】:2011-12-06 17:26:41
【问题描述】:

我有一个继承自 TimeBlock 的运动类。 TimeBlock 是为我提供的,我无法更改。 TimeBlock 提供了一个 DurationDescription 属性,我想显示它。但是我总是使用 LabelFor 等,这意味着我需要在 DurationDescription 上显示元数据,这样我才能拥有“Duration Desc”。等等

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

【问题讨论】:

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


    【解决方案1】:

    是的,您需要使用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; }
        }
    }
    

    在 UI 上,属性将显示为 "My prop 1""My prop 2"

    【讨论】:

    • 酷认为我可能应该先用代码做一些其他的事情。我在普通 EF 中使用了元数据 typeof。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多