实体的多个元数据类

本文关键字:元数据 实体 | 更新日期: 2023-09-27 18:26:27

假设我有两个实体,一个是UserMaster,另一个是ProjectMaster,现在这两个实体中几乎没有公共属性,我需要在这两组公共属性上应用相同的数据注释和属性,这是我使用元数据类所做的,现在我的问题是,有没有办法为实体之间的所有这些公共属性创建一个公共元数据类,这样我就不需要一次又一次地为公共属性应用数据注释和属性,如果是,那么如何实现这一点。

实体的多个元数据类

您可以创建一个基元数据类,另一个元数据类从该基派生,并添加一些其他属性。

示例:

在下面的例子中,我假设您不能从Class1派生Class2,所以我只能在元数据类之间进行继承,否则您可以在模型类之间进行遗传。

[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; }
}