实体的多个元数据类

时间:2015-12-11 08:04:36

标签: c# .net asp.net-mvc entity-framework

假设我有2个实体,一个是UserMaster,另一个是ProjectMaster,现在两个实体中几乎没有共同属性,我需要在两组公共属性上应用相同的数据注释和属性我确实使用元数据类,现在我的问题是,我有任何方式可以跨实体使用所有这些常见属性的公共元数据类,因此我不需要一次又一次地应用数据注释和公共属性的属性,如果是的然后如何实现这一目标。

1 个答案:

答案 0 :(得分:2)

您可以创建基本元数据类,其他元数据类派生自基础并添加一些其他属性。

示例:

在下面的示例中,我认为您无法从Class2派生Class1,因此我只在元数据类之间继承,否则您只能在模型类之间继承。

[MetadataType(typeof(Class1Metadata))]
public class Class1
{
    public string Id { get; set; }
    public string Name { get; set; }
}

[MetadataType(typeof(Class2Metadata))]
public class Class2
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

public class Class1Metadata
{
    [Display(Name="Id1")]
    public string Id { get; set; }
    [Display(Name = "Name1")]
    public string Name { get; set; }
}
public class Class2Metadata:Class1Metadata
{
    [Display(Name = "Description2")]
    public string Description { get; set; }
}