实体的多个元数据类
本文关键字:元数据 实体 | 更新日期: 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; }
}